生成带有加权概率的随机数 [英] Generate random numbers with weighted probabilites
本文介绍了生成带有加权概率的随机数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想随机选择一个数字,但要基于一组数字的概率;例如(2-6).
I want to select a number randomly, but based on probability from a group of numbers; for example (2-6).
我想要以下发行版:
- 6的概率应该是10%
- 5的概率应该是40%
- 4的概率应该是35%
- 3的概率应该为5%
- 2的概率应该为5%
推荐答案
您能做的最好的事情是生成一个介于0到100之间的数字,并查看该数字在什么范围内:
The best you can do is generate a number between 0 and 100, and see in what range the number is:
$num=rand(0,100);
if ($num<10+40+35+5+5)
$result=2;
if ($num<10+40+35+5)
$result=3;
if ($num<10+40+35)
$result=4;
if ($num<10+40)
$result=5;
if ($num<10)
$result=6;
请注意,您的总概率不等于1 ,因此有时$ result是不确定的
Be careful, your total probability isn't equal to 1, so sometimes $result is undefined
如果您想要可以轻松配置的内容,请参见@ grigore-turbodisel的答案.
See @grigore-turbodisel 's answer if you want something that you can configure easily.
这篇关于生成带有加权概率的随机数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文