原来如此,排位系统是这样给我匹配那些瓜皮队友的

我有个朋友抱怨说打排位匹配的队友太菜了,我就说我打排位觉得队友都挺行的啊?我经常躺赢。

朋友意味深长地说了句:一般隐藏分比较高的玩家,排位如果排不到实力相当的队友,就会排到一些菜狗。

嗯?我想了几秒钟感觉这小伙子不对劲,他意思是说我隐藏分低,还是说我就是那条菜狗?

我立马要求和他开黑打一把,证明我不是菜狗,他才是菜狗。

打完之后我就来发文了,虽然结果不便透露,但我对游戏的匹配机制有了一点思考。

所谓「隐藏分」我不知道是不是真的,毕竟匹配机制是所有竞技类游戏的核心环节,想必非常复杂,不是简单几个指标就能搞定的

但是如果把这个「隐藏分」机制简化,倒是一个值得思考的算法问题:系统如何以不同的随机概率进行匹配?

或者简单点说,如何带权重地做随机选择?

不要觉得这个很容易,如果给你一个长度为n的数组,让你从中等概率随机抽取一个元素,你肯定会做,random 一个[0, n-1]的数字出来作为索引就行了,每个元素被随机选到的概率都是1/n。

但假设每个元素都有不同的权重,权重地大小代表随机选到这个元素的概率大小,你如何写算法去随机获取元素呢?

力扣第 528 题「按权重随机选择」就是这样一个问题:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是英雄联盟排位比赛数据处理和特征工程的实验步骤和结果: 1. 数据集:本实验使用 Kaggle 上的英雄联盟排位比赛数据集,包含了 9879 条比赛记录,每条记录包括了 19 个特征,例如队伍胜负、队伍成员、英雄选择等。 2. 实验步骤: (1)导入数据集:使用 Pandas 库中的 read_csv() 函数导入数据集。 (2)数据预处理:对数据进行缺失值填充、数据类型转换、数据归一化等预处理操作,使用 Sklearn 库中的相关函数实现。 (3)特征选择:使用 Sklearn 库中的 SelectKBest() 函数对数据进行特征选择,选择最优的特征数。 (4)数据降维:使用 Sklearn 库中的 PCA() 函数对数据进行降维,将数据降到二维或三维。 (5)可视化展示:使用 Matplotlib 库对数据进行可视化展示,例如绘制散点图、折线图等。 (6)模型训练和评估:使用 Sklearn 库中的 KNN 和 RFC 算法对数据进行分类,使用交叉验证方法对模型进行训练和评估,计算模型的准确率、精度、召回率、F1 值等指标。 3. 实验结果: (1)数据预处理:对数据进行缺失值填充、数据类型转换、数据归一化等预处理操作。 (2)特征选择:使用 SelectKBest() 函数选择最优的特征数为 10。 (3)数据降维:使用 PCA() 函数将数据降到二维。 (4)可视化展示:使用 Matplotlib 库绘制二维散点图,不同颜色代表不同的队伍胜负。 (5)模型训练和评估:使用 KNN 和 RFC 算法对数据进行分类,使用交叉验证方法对模型进行训练和评估,结果如下表所示: | 模型 | 准确率 | 精度 | 召回率 | F1 值 | | --- | --- | --- | --- | --- | | KNN | 0.714 | 0.715 | 0.713 | 0.712 | | RFC | 0.729 | 0.731 | 0.728 | 0.727 | 综上所述,本实验通过数据预处理、特征选择、数据降维、可视化展示和模型训练和评估等步骤,对英雄联盟排位比赛数据进行了处理和特征工程,并得出了 KNN 和 RFC 算法的分类效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值