有哪些经典的抽奖算法

美团用过一种抽奖算法,以未来某天股票大盘收市指数、未来某期实体彩票的某等奖号码等数据做基数,再配以简单的数据规整算法。由于可私下操纵的难度极高,因此这种算法的公信力较高,而且实现起来也不复杂,比挖空心思做随机算法的效果好。彩票算法,相对于伪随机而言,更重要的是让不了解的人也能产生信任感。貌似这个点子是在经典论坛上发帖募集来的。
■网友
直接上一个php代码\u0026lt;?php#应该没问题了吧//抽奖池$ArrAwardPool = array (\t\t"iPad"=\u0026gt;1,\t\t"500元支付宝现金"=\u0026gt;4,\t\t"64GU盘"=\u0026gt;10,\t\t"10Q币"=\u0026gt;50,\t\t"幸运女神与您插肩而过"=\u0026gt;100);//奖品列表$ArrAwardList=array();$ArrListLength=0;//获取奖品列表foreach($ArrAwardPool as $key=\u0026gt;$value){\t$ArrListLength+=$value;\t$ArrAwardList=array_pad($ArrAwardList, $ArrListLength, $key);}//打乱奖品列表shuffle($ArrAwardList);//定义抽奖函数function Choujiang(){\tglobal $ArrAwardList;\t$Award=$ArrAwardList;\tif($Award=="幸运女神与您插肩而过"){\t\tshuffle($ArrAwardList);\t}else{\t\tarray_shift($ArrAwardList);\t}\treturn $Award;}//用户抽奖结果展示function StartChoujiang(){\t$Award=Choujiang();\t$result="";\tif($Award=="幸运女神与您插肩而过"){\t\t$result="很遗憾,".$Award;\t}\telse{\t\t$result="恭喜你获得了:".$Award."一份!";\t}\treturn $result;}//开发者查看奖品列表function DeveloperViewList(){\tglobal $ArrAwardList;\techo "奖品列表:\";\tprint_r($ArrAwardList);}//开发者查看奖品池function DeveloperViewPool(){\tglobal $ArrAwardList;\techo "奖品列表:\";\t$temp=array_count_values($ArrAwardList);\tprint_r($temp);}//用户查看奖品池(不给看列表)function UserViewPool(){\tglobal $ArrAwardList;\t$temp=array_count_values($ArrAwardList);\tunset($temp);\techo "\奖池还有的奖品:\";\tprint_r($temp);\t}//以下为抽奖测试echo StartChoujiang(),"\";echo StartChoujiang(),"\";echo StartChoujiang(),"\";echo StartChoujiang(),"\";echo StartChoujiang(),"\";UserViewPool();?\u0026gt;


    推荐阅读