2012-02-10 113 views
0

我想要低估一個比賽,該比賽最初是以9名選手以1500個籌碼開始,然後當一名選手退出比賽時,他的籌碼會被送給贏得對手的籌碼。 主要有雙人撲克/三人撲克等,但玩家之間還有其他一些小籌碼交易。在某些條件下生成隨機數

我怎樣才能隨機生成他們的芯片考慮到芯片的交易行爲?

我只是使用rand()但這不會按預期工作。


例如: 如果我有9名球員,我沒有任何雙窗口。所以堆棧是與像一些變化相似:

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

在場景中有4名球員就不會有5個UPS:

$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); 

我希望我已經清楚,如果不是我會編輯回帖!

+0

爲什麼不蘭特()工作? – CBusBus 2012-02-10 18:40:27

+0

我不確定我是否理解芯片隨機轉移的數學運算,rand()應該正常工作,如果你想要一個更好的隨機化算法,使用mt_rand(Mersenne Twister算法) – 2012-02-10 18:49:30

回答

1

如果我正確理解您的擔心,這裏是做到這一點的一種方法:

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

我認爲一個改進會而不是總是使用50,從(50,100,200,500,max)中隨機選擇 – Brandon 2012-02-10 18:51:21

+0

我甚至不會使用循環,或者如果我自己做了常量,但是例如,絕招:--D – Mikhail 2012-02-10 21:46:31