日期:2014-05-17  浏览次数:20509 次

PHP数组按照概率返回的算法
现在有一9键数组:
$arr = array(1,2,3,4,5,6,7,8,9);
我希望:
1的返回概率是30%
2的返回概率是20%
3的返回概率是10%
4的返回概率是50%
其他的不管
这样的算法怎么算呢


------解决方案--------------------
这个意思么?

$ConfigArr = array('30%', '20%', '10%', '50%');

$arr = array(1,2,3,4,5,6,7,8,9);
foreach ($arr as $key=>$val)
echo isset($ConfigArr[$key]) ? $val.'概率是:' . $ConfigArr[$key] . '<br />': '';
------解决方案--------------------
探讨

这个意思么?

$ConfigArr = array('30%', '20%', '10%', '50%');

$arr = array(1,2,3,4,5,6,7,8,9);
foreach ($arr as $key=>$val)
echo isset($ConfigArr[$key]) ? $val.'概率是:' . $ConfigArr[$key] . '<br />':……

------解决方案--------------------
探讨

引用:

这个意思么?

$ConfigArr = array('30%', '20%', '10%', '50%');

$arr = array(1,2,3,4,5,6,7,8,9);
foreach ($arr as $key=>$val)
echo isset($ConfigArr[$key]) ? $val.'概率是:' . $ConfigArr[$k……

------解决方案--------------------
是不是 ,通过一个函数 返回 $arr = array(1,2,3,4,5,6,7,8,9); 中的数字;

返回的楷率是:

1的返回概率是30%
2的返回概率是20%
3的返回概率是10%
4的返回概率是50%

!
是这样的吗?
完全摸得想法啊?
------解决方案--------------------
那就逐个随机,比如随机1-100个数。对1,<=30返回,再次随机,对2,<=20返回

总之返回结果可能超过1个就对啦
------解决方案--------------------
不是吧。。刚换件衣服不久,这么快被发现了……

探讨
我擦。。头像还会换衣服。


------解决方案--------------------
同意amani11的想法。
@#2 至于每个数是否被返回,完全是独立事件,为什么管它和是否大于100%呢?