ここで皆さんにテストする質問があります
ある部隊がくじ引き大会を実施し、賞品は 1 つだけです。
この数字は 5 人しか当選できず、当選確率は 3% です
5 人の当選番号はどのように計算しますか?
-----解決策--------------------------
例を挙げてください 次に、上記の説明はあまり明確ではありません
-----解決策------------- --------
読んでください タイトルの私の理解はこうです。
最初の理解:
1. 当選確率は 3%、
2 のみです。
N*3%=5、N=5/3%=166.6666667、半分の人は存在しないため、人の総数は 166 人になります。
<br /><?php<br />$arr = array(1,1,1,1,1);<br />$arr = array_pad($arr, 166, 0); // 填充161个号不中奖<br />shuffle($arr); // 打乱顺序,使5个中奖的号随机分配在166个号中<br />print_r($arr);<br />?><br />
<br /><?php<br />function gift(){<br /><br /> static $win=5;<br /><br /> if($win>0){<br /> $tmp = mt_rand(1,33); // 3%<br /> if($tmp==1){<br /> $win--;<br /> return true;<br /> }<br /> }<br /> return false;<br />}<br /><br />// 模拟1000次抽奖<br />for($i=0; $i<1000; $i++){<br /> var_dump(gift());<br />}<br />?><br />
select empno , empname from employee order by rand() limit 0,5