ここではPHP rand();関数に確立を設定するサンプルソースを記載しています。
サンプルソース
<?php
$configs = array(
array(
'probability' => 60,
'message' => '60%の確率で表示されます。'
),
array(
'probability' => 30,
'message' => '30%の確率で表示されます。'
),
array(
'probability' => 10,
'message' => '10%の確率で表示されます。'
)
);
$count = count($configs);
$max = 0;
for ($i = 0; $i < $count; $i++) {
$max += $configs[$i]['probability'];
}
$rand = rand(1, $max);
$from = 0;
$to = 0;
$result = '';
for ($i = 0; $i < $count; $i++) {
$from = $to;
$to += $configs[$i]['probability'];
if ($from < $rand && $rand <= $to) {
$result = $configs[$i]['message'];
}
}
echo $result;
解説
probabilityの数値が大きいものを高確率で出しています。
数値の合計が100を超えたとしても数値の大きいものが出力されます。
