[請益] 抽獎遊戲的中獎機率

看板PHP作者 (s861175)時間15年前 (2010/06/11 13:48), 編輯推噓6(609)
留言15則, 9人參與, 最新討論串1/2 (看更多)
想寫一個抽獎遊戲的網頁,使用者點擊後開始抽獎, "1獎"中獎機率為10% "2獎"中獎機率為20% "3獎"中獎機率為70% 在程式碼部分,小弟想到的是 $arr=array("1獎","2獎","2獎","3獎","3獎","3獎","3獎","3獎","3獎","3獎"); shuffle($arr); //將陣列元素隨機排序 echo $arr[0]; 是很直覺的寫法 但是,如果要應付1獎中獎機率只有0.1%的情況, 那陣列就會變成有1千個元素,感覺效能會很差, 請問大家會建議用什麼樣的寫法,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.31.4

06/11 13:59, , 1F
random一個數字做mod(%), 0.1% 就是 $p % 1000 == 1
06/11 13:59, 1F

06/11 14:01, , 2F
不過實際上和廠商合作的抽獎遊戲 試看獎品能送出多少份
06/11 14:01, 2F

06/11 15:40, , 3F
其他獎放到1000個然後POP取出來XD
06/11 15:40, 3F

06/11 15:43, , 4F
亂數取編號..1是1獎,2~3是2獎,3~n是3獎...用範圍取~
06/11 15:43, 4F

06/11 17:33, , 5F
獎項發完怎麼辦?
06/11 17:33, 5F

06/11 21:39, , 6F
大獎放最後,其他獎shuffle一次後一個一個POP就好XD
06/11 21:39, 6F

06/11 21:58, , 7F
推二樓,要問廠商有幾組要送,你設0.1%還是有可能連中20次
06/11 21:58, 7F

06/11 22:00, , 8F
要紀錄已送出幾組, 扣達到了, 怎麼抽都是 0%
06/11 22:00, 8F

06/12 08:59, , 9F
所以照原PO的方法, 打亂再按順序取完, 其實是個好方法...
06/12 08:59, 9F

06/12 10:26, , 10F
謝謝各位大大的意見
06/12 10:26, 10F

06/12 10:27, , 11F
會選擇用陣列 是因為有很多函式可以應用 例如:array_pop()
06/12 10:27, 11F

06/12 10:32, , 12F
即可將抽中的獎品從陣列中刪除...只是想問大家再處理這種
06/12 10:32, 12F

06/12 10:38, , 13F
問題時 會採取哪一種方式去達到目的? 感謝1f 4f 6f的建議
06/12 10:38, 13F

06/14 07:40, , 14F
做兩次如何 第一次 一獎已經10% 在對 1獎做1% 兩次起來
06/14 07:40, 14F

06/14 07:40, , 15F
就有0.1%了
06/14 07:40, 15F
文章代碼(AID): #1C4SuvLn (PHP)
討論串 (同標題文章)
文章代碼(AID): #1C4SuvLn (PHP)