求php抽奖概率的算法 我有个抽奖的轮盘想 根据自己设置的概率 输出 0 1 2 3 4 5 6 7这8个奖项 请问 要怎么写这个概率比如 7 就高概率的 抽到 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /** * 根据概率获取中奖号码 */ static public function get_rand() { $arr = array( array('id'=>1,'name'=>'t等奖','v'=>1),//特等奖 array('id'=>2,'name'=>'1等奖','v'=>5),//1等奖 array('id'=>3,'name'=>'2等奖','v'=>10),//2等奖 array('id'=>4,'name'=>'3等奖','v'=>12),//3等奖 array('id'=>5,'name'=>'4等奖','v'=>23),//4等奖 array('id'=>6,'name'=>'5等奖','v'=>59),//5等奖 array('id'=>7,'name'=>'6等奖','v'=>80),//6等奖 array('id'=>8,'name'=>'7等奖','v'=>100)//7等奖 ); return self::get_rand1($arr); } static function get_rand1($proArr) { $result = array(); foreach ($proArr as $key => $val) { $arr[$key] = $val['v']; } // 概率数组的总概率 $proSum = array_sum($arr); asort($arr); // 概率数组循环 foreach ($arr as $k => $v) { $randNum = mt_rand(1, $proSum); if ($randNum <= $v) { $result = $proArr[$k]; break; } else { $proSum -= $v; } } return $result; }自己找到了 有需要的朋友可以用用 ,数组里面的v是控制概率的 一个PHP的小模板300元找人开发。可以支付宝付费 php+mysql+apache怎么下载和配置啊? 各位大家帮忙看一下哪里出了问题 请问smarty中如何定义两组边界符号? 为什么加上<?include "";?>页面不现实 ThinkPHP 截取字符串问题 请问如何学习php php代码求解密 找了好多办法都不行 怎样获取苹果app store排行榜的数据 Class 'ZipArchive' not found ThinkPHP链接数据库问题 能看下这个抽签的源码大概是什么意思
/**
* 根据概率获取中奖号码
*/
static public function get_rand() {
$arr = array(
array('id'=>1,'name'=>'t等奖','v'=>1),//特等奖
array('id'=>2,'name'=>'1等奖','v'=>5),//1等奖
array('id'=>3,'name'=>'2等奖','v'=>10),//2等奖
array('id'=>4,'name'=>'3等奖','v'=>12),//3等奖
array('id'=>5,'name'=>'4等奖','v'=>23),//4等奖
array('id'=>6,'name'=>'5等奖','v'=>59),//5等奖
array('id'=>7,'name'=>'6等奖','v'=>80),//6等奖
array('id'=>8,'name'=>'7等奖','v'=>100)//7等奖
);
return self::get_rand1($arr);
}
static function get_rand1($proArr) {
$result = array();
foreach ($proArr as $key => $val) {
$arr[$key] = $val['v'];
}
// 概率数组的总概率
$proSum = array_sum($arr);
asort($arr);
// 概率数组循环
foreach ($arr as $k => $v) {
$randNum = mt_rand(1, $proSum);
if ($randNum <= $v) {
$result = $proArr[$k];
break;
} else {
$proSum -= $v;
}
}
return $result;
}自己找到了 有需要的朋友可以用用 ,数组里面的v是控制概率的