Maison > Article > développement back-end > 出个题 考考大家伙儿
出个题 考考大伙儿
某单位进行抽签比赛,只设一个奖项。
数量是只能有5个人中奖,中奖概率是3%
如何算出5个中奖号码?
------解决方案--------------------
举个实例说明下 看上面描述的不是很清楚
------解决方案--------------------
看了题目,我的理解是这样的。
第一种理解:
1.中奖机率是3%,
2.只能有5个人中奖。
那么 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