想找一种这样的随机数产生方案:
随机产生一个数(0~n),特点是:数字越小,出现的概率越高。
产生随机数很简单,但是做到后面那点就不容易了。想来想去,没有找到特别适合的方法,无奈最后在论坛上发帖求助。得到一个比较满意的解决方案:
$arr = array_fill(0,9,0); //0-9的数组
echo $arr[getRandomByFactor(9)]; //数组中随机数
经过概率分布测试,还比较满足要求。而且用起来挺方便,第二个参数还可以调整概率变化的程度。就是算法没琢磨明白
还有个更简洁的算法: