说我有4名球员:
java.lang.ExceptionInInitializerError...
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load serial_port.so from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.example.blake.serialport2-1.apk,libraryPath=/data/app-lib/com.example.blake.serialport2-1]: findLibrary returned null
我需要一种方法来模拟不同的玩家一起玩并随机选择一个胜利者,但这样才能让胜利者有意义。
我的第一个想法是这样做:
如果我的随机数落在1到50之间,则玩家1获胜,如果我的随机数落在51和101之间,则玩家2获胜,如果它落在102和192之间,则玩家3获胜,如果它落在193和之间203,玩家4获胜。
我选择1到203之间的数字来确定获胜者。假设我的随机数是均匀分布的,我应该得到我想要的东西。
我想知道是否有更多数学方法可以做到这一点,或者这是否是唯一的方法? (利用语言c ++)
答案 0 :(得分:3)
我会将此评论更改为答案,因为我还有更多:
我喜欢ELO评级。许多年前,哈克尼斯写了一本书,描述了美国国际象棋联合会如何通过扩展基本的ELO系统来实现其评级。另外,当新玩家建立他的评级时,前25场比赛基于严格的ELO系统。 (希望我可以提供参考,但是我的工作电脑不会让我导航到任何涉及游戏的网站。)
了解它的数字和算法很简单'根据胜率确定评级。获得评级后,您可以根据评分差异计算获胜的头对头概率。
一旦你接近概率,然后将每个球员的胜率与他的三个对手相加,并宣布获胜者的总得分最高。如果您想要赢得Round Robin的人的特定概率,您可以使用基本统计分析来计算各个游戏差异总和的胜率百分比。