2012-02-10 15 views
0

最初は1500人のチップを持つ9人の選手で始まるトーナメントを下降させたいと思っています。 主にダブルアップ/トリプルアップなどがありますが、プレーヤー間にはチップのマイナーチェンジがいくつかあります。いくつかの条件で乱数を生成する

チップ交換の動作を考慮して、ランダムにチップを生成するにはどうすればよいですか?

私はちょうどrand()を使用しますが、それは期待どおりに動作しません。例えば


: 私は9人の選手を持っている場合、私は、任意のダブルアップを持っていません。

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

私はしません場合、私は、明確にしてきた願っています:5つのダブルアップがあっただろう4人の選手とのシナリオでは

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

:だからスタックのようないくつかのバリエーションと似ています投稿を編集する!

+0

なぜランド()が動作しないのでしょうか? – CBusBus

+0

私はチップのランダム転送のための数学的操作を理解していない、rand()は正しく動作するはずです、より良いランダム化アルゴリズムを望むなら、mt_rand(Mersenne Twisterアルゴリズム)を使用してください。 –

答えて

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、100、200、500、max)からランダムに選んでください。 – Brandon

+0

私はそれを自分でやっていたとしてもループや定数を使っていませんが、この6ライナーはトリック: - D – Mikhail

関連する問題