赫夫曼编码的详细步骤:先按出现的概率大小排队,把两个最小的概率相加,作为新的概率 和剩余的概率再次排队,再把最小的两个概率相加,再再次排队,直到最后变成1超星转盘抽奖软件说明:1、支持自定义各种奖励的出奖概率奖品出奖概率的设定php会员抽奖程序代码,在本套工具中是不需要设置的,每个奖项的出奖概率就是该奖励的总人数除所有奖励总次数,所以您在修改工具奖品数目时,合理设定最小奖其中5元抽奖跟10元抽奖品差别非常小,而且经过广大玩家验证,5元抽奖比起10元抽奖很便宜,因为5元抽奖毕竟抽中好东西的几率非常高,但是抽到7天东西是这些的php会员抽奖程序代码,综合来看,5元抽奖比较便宜,而另一个199的顶级皮肤要抽到是比较难的,不知道是不是官方不发放
然后立刻生成一个0至最大数之间的一个数,通过循环查看它属于哪个区间,返回该区间的key。
代码如下
$prize=array(
1=>3.5,//3.5%机率
2=>2.5,
3=>6,
4=>2,
5=>42,//42%机率
6=>36,
7=>2,
8=>4,
9=>2
);
//最后确认相加等于100
$prizeList=array(
1=>array('小仙子'),
2=>array('5Q币'),
3=>array('38888游戏币'),
4=>array('88888游戏币'),
5=>array('谢谢参与!'),
6=>array('欢迎以后再来!'),
7=>array('10Q币'),
8=>array('888银元宝(绑定)'),
9=>array('随机高级坐骑(绑定)')
);
//unset($prize[7]);直接把10Q这个奖品去掉
$times=10;
$max=0;
foreach($prizeas$k=>$v)
{
$max=$v*$times+$max;
$row['v']=$max;
$row['k']=$k;
$prizeZone[]=$row;
}
$max--;//临界值
$rand=mt_rand(0,$max);
$zone=1;
foreach($prizeZoneas$k=>$v)
{
if($rand>=$v['v'])
{
if($rand>=$prizeZone[$k+1]['v'])
{
continue;
}
else
{
$zone=$prizeZone[$k+1]['k'];
break;
}
}
$zone=$v['k'];
break;
}
print_r($prizeList[$zone][0]);
基于php实现简单的抽奖大程序代码就帮你们写这么多,不过都是核心代码,希望对你们学习工作有所帮助。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-131535-1.html