在某些条件下生成随机数

时间:2012-02-10 18:37:16

标签: php random

我想低估一场最初以9名玩家开始的锦标赛,每队有1500个筹码,然后当一名玩家退出锦标赛时,他的筹码将被提供给赢得对手的筹码。 主要是双倍上升/三重上升等,但玩家之间还有一些其他的小筹码交换。

考虑到芯片交换的行为,如何随机生成芯片呢?

我只会使用rand(),但这不会按预期工作。


例如: 如果我有9名球员,我就不会有任何翻倍。所以堆栈类似于一些变体,如:

$stacks = array(1300,1150,1650,1800,1500,1550,1450,1800,1500,1550);

在有4名球员的场景中,会有5次翻倍:

$stacks = array(7500,1500,1500,1500) or array(4500,3000,3000,1500); //this should be randomized a little bit to

$stacks = array(7800,1350,1250,1950);

我希望我已经清楚,如果不是,我会编辑回帖子!

1 个答案:

答案 0 :(得分:1)

如果我理解你的关注,这是一种方法:

for ($x = 0; $x < $NUMBER_OF_EXCHANGES; $x++) {
  $loser = array_rand($stacks);
  $winner = array_rand($stacks);
  $stacks[$loser] -= 50;
  $stacks[$winner] += 50;
}