作者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