作者linhomeyeu (夹又(?))
看板PHP
标题Re: [请益] 想请问一下一个抽奖程式的流程问题
时间Fri Apr 29 13:37:46 2011
※ 引述《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
1F:→ linhomeyeu:对了 机率总和可以不等於100 04/29 13:38