Re: [請益] 想請問一下一個抽獎程式的流程問題

看板PHP作者 (夾又(?))時間14年前 (2011/04/29 13:37), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/5 (看更多)
※ 引述《lionSYH (獅子王)》之銘言: : 小弟最近在做一個抽獎程式 : 假設有4個獎項... : 我想要控制 : 1獎機率為10% : 2獎20% : 3獎30% : 4獎40% : 我想到的方法比較蠢... : 就是產生10個陣列...定為a : 1獎放在a[0] : 2獎a[1] a[2] : 3獎a[3] a[4] a[5] : 4獎a[6] a[7] a[8] a[9] : 之後再rand(0,9) 看中的哪個.. : 不過在機率大時還可以在這樣用, : 如果機率中有0.01 或是15.35這種非整數的機率出現時 : 我的陣列數就要產生相當多 : 不知道有沒有更好的方法,可以達成呢!? : 麻煩各位前輩了 <?php function getPrice($prob) { $randSum = 0; foreach($prob as &$row) { $randSum += $row; $row = $randSum; } $seed = rand(1,$randSum); foreach($prob as $price => $sum) { if($seed <= $sum) return $price; } } $probability = array( '1獎'=>10, '2獎'=>20, '3獎'=>30, '4獎'=>40 ); echo getPrice($probability); ?> -- 期末強片: 1.驚奇四修人 2.死當筆記本 3.不能過的祕密 4.重修狀 5.當二一來敲門 6.驚天動地59分 7.把學分找回來 8.沒過黑幫 9.有學分真好 10.現在,很想當你 11.賜零 12.穿越年假擋修你 13.與教授的六十分戰爭 14.全面重修 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.252.40

04/29 13:38, , 1F
對了 機率總和可以不等於100
04/29 13:38, 1F
文章代碼(AID): #1DkawiTt (PHP)
文章代碼(AID): #1DkawiTt (PHP)