作者Kelunyang (可倫)
看板PHP
標題Re: [請益] 想請問一下一個抽獎程式的流程問題
時間Sat Apr 30 23:36:45 2011
我之前有做過一個解法,反正現在電腦記憶體都很大,提供你一下XD
(我知道一定很白癡,不過我不是讀科班的,然後這種case也不值多少錢,懶得想XD)
你就準備一個一維陣列,然後假設機率是10%、15%、20%等等(湊到100%)
就開一個寬度是100的,用for依序把1、2、3獎順序填入這個陣列
這個填入的程式只要用for寫就可以了,機率可以先定義在一個陣列裡,foreach
讀出來之後電腦自己去把牌組建立好
之後用shuffle打亂陣列(洗牌),再把第一個抽出來,就結束了XD
如果是小數怎麼辦,擴分XD
※ 引述《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這種非整數的機率出現時
: 我的陣列數就要產生相當多
: 不知道有沒有更好的方法,可以達成呢!?
: 麻煩各位前輩了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.32.29
1F:推 smallsong:這位前輩,您想的方法跟我一樣阿XDD 05/01 00:03
2F:→ Kelunyang:這樣一定會符合機率的啊XD 只是這樣是個別抽獎的機率 05/01 01:01
3F:→ Kelunyang:之後業主會跟你說,怎麼會有這麼多人中獎捏~~~ 05/01 01:01
4F:→ Kelunyang:實際上他們可能希望的是拿到全部的玩家名單之後再抽獎, 05/01 01:02
5F:→ Kelunyang:這樣還得改一下,不過原理是一樣的XD 05/01 01:02
6F:→ Kelunyang:最好是讓業主告訴你他們有多少禮物,這樣加進去算比較 05/01 01:02
7F:→ Kelunyang:準確XD 05/01 01:02
8F:→ shadowjohn:雖然不知道要抽什麼,不過請設定讓我中獎,謝謝 05/01 01:15
9F:推 cavitylapper:然不知道要抽什麼,不過請設定讓我中獎,謝謝 05/01 12:33
10F:推 mp607: 雖然不知道要抽什麼,不過請設定讓我中獎,謝謝 05/01 15:39
11F:推 mattttt: 雖然不知道要抽什麼,不過請設定讓我中獎,謝謝 05/01 19:57
12F:推 rocairforce: 然不知道要抽什麼,不過請設定讓我中獎,謝謝 05/02 10:21
13F:→ Kelunyang: 雖然不知道要抽什麼,不過請設定讓我中獎,謝謝 05/02 10:21
14F:→ imcar:抽筋好了 05/02 15:03
15F:推 angelplume:雖然不知道要抽什麼,不過請設定讓我中獎,謝謝 05/02 19:09