模拟每个玩家获胜概率不同的游戏
Simulating a game where each player has a different probability of winning?
假设我有4个玩家:
Player 1 wins 50% of his games
Player 2 wins 20% of his games
Player 3 wins 90% of his games
Player 4 wins 20% of his games
我需要一种方法来模拟不同的玩家一起玩,并随机选择一个赢家,但这样赢家才有意义。
我的第一个想法是这样做:
如果我的随机数落在1到50之间,玩家1获胜,如果我的随意数落在51到101之间,玩家2获胜,如果落在102到192之间,玩家3获胜,如果落入193到203之间,玩家4获胜。
我选择一个介于1和203之间的数字来确定获胜者。假设我的随机数是均匀分布的,我应该会得到我想要的。
我想知道是否有更数学的方法可以做到这一点,或者这是唯一的方法?(利用c++语言)
我会把这个评论改成一个答案,因为我有更多:
我喜欢ELO评分。哈克内斯多年前写了一本书,描述了美国国际象棋联合会如何通过扩展基本ELO系统来实现其评级。顺便说一句,当一个新玩家将建立他的评级时,前25场比赛是基于严格的ELO系统。(希望我能提供一个参考,但我的工作电脑不允许我浏览任何与游戏有关的网站)。
进入数字和算法,很容易根据获胜百分比生成评分。一旦你有了评分,你就可以根据评分的差异来计算获胜的概率。
一旦你有了概率,然后把每个玩家战胜三个对手的概率加起来,宣布最高的总概率为赢家。如果你想知道一个人赢得循环赛的具体概率,你可以使用初等统计分析来计算个人比赛方差之和的获胜百分比的方差。
相关文章:
- 如何根据单词在文本中出现的概率输出单词
- 在C++游戏中与库存系统作斗争
- 换位表导致测试失败(但在游戏中运行良好)
- Craps游戏问题,忽略if语句
- 矢量下标超出SFML游戏中的范围
- 我是 c++ 的新手.学习基本知识后,我想做井字游戏.对于印刷板,我在下面写代码,但它显示错误
- 我在贪吃蛇游戏中收到了错误代码 -1073741571
- 我应该在简单的策略游戏中为各个派系使用类吗 - C++
- 游戏体验和升级
- 我的代码运行良好,但在游戏循环中中断
- 如何使用 SFML 在贪吃蛇游戏中定义游戏结束?
- 我可以使用任何好的逻辑来阻止计算机将 O 放在井字游戏中的现有 X 上
- 将鼠标和键盘输入发送到 unity3d 游戏 (Rust)
- 在猜谜游戏 c++ 中不计算尝试次数
- 在C++不适用于猜数字游戏的情况下再次播放选项
- 在为我的基于文本的 RPG 游戏制作库存时遇到困难
- 在定义字符数组(井字游戏)的 for 循环中应用输入限制
- Frank Luna 在他的书"使用 DirectX12 进行 3D 游戏编程"的介绍中盒子示例的问题
- 如何在游戏中增加概率
- 模拟每个玩家获胜概率不同的游戏