シャッフルのような配列をランダム化する関数が必要ですが、各要素のチャンスが違うという違いがあります。特別なシャッフル関数をPHPで行う方法
たとえば、次の配列を考慮してください。
$animals = array('elephant', 'dog', 'cat', 'mouse');
象は犬よりも最初のインデックスに乗るの高いチャンスがあります。犬は猫よりも高いチャンスを持っています。例えば、この特定の例では、象は1位に入る確率は40%、2位に入るのは30%、3位に入ると20%、最後には10%になる確率です。
シャッフルの後、元の配列の最初の要素は、最初の位置にある可能性が高くなりますが、最後の位置にある可能性が高くなります。
興味深い質問ですが、各位置に終わる各要素の確率を割り当てるメカニズムは犯罪的に不十分です。 – Jon
たとえば、10%未満ではどうなりますか? – Cyclone
この場合、象は最後の位置にある確率は10%、最後の位置にない確率は90%です。 –