使用百分比数组来确定概率?

时间:2015-05-14 12:15:51

标签: java arrays probability

在java中尝试挑战后,制作了一个“赌场”。风格游戏,我已经到了我有一个包含10个值的数组的点,每个值都是他们可以赢得的百分比变化。这些被分配到阵列中的相同位置,因为它们的' ID'是,例如。 playerid[i]适用于百分比为percentageChance[i]

的玩家

在这个阶段,我不知道我可以去哪里实际确定“胜利者”。我考虑过从1-100开始随机编号,无论它落在哪个区域都意味着该人获胜,但我不知道如何实现这一点,或者是否有更清洁/更有效的技术。 / p>

2 个答案:

答案 0 :(得分:2)

你听起来像是在正确的轨道上!假设所有概率加起来都是100,我会在1到100之间取一个随机数,然后看看它在阵列中的位置。

Random r = new Random();
int rand = r.nextInt(100) + 1;
int sum = 0;
for(int i = 0; i < 10; i++){
  sum += percentChance[i];
  if(sum <= rand){
       //player i wins
  }

}

答案 1 :(得分:2)

如果所有机会总和为100,那么只需要一个数字btw 1和100:

Random r = new Random();
int winner = r.nextInt(100) + 1;

然后获得阵列的胜利者位置:

int count = 0;

for (i = 0; i < 10; i++) {
    count += chances[i];

    // this will give i position
    if (count >= winner) break;
}

System.out.println("Winner is " + playerid[i]);

想象一下你得到winner = 34,抓住机会阵列并获得相应的位置。

chances = [10, 5, 5, 30, 5, 5, 5, 5, 25, 5];

第一次迭代计数为10,没有任何反应,15,20之后......

i  count  
-  -----
0  10
1  15 
2  20
3  50  count > winner so i=4 is the winner!