通过使用rand()
函数,我们可以创建输出的可能性。
与rand()%4 + 'A'
类似,基本上意味着此代码将生成从A到D的随机字母。
然后我的问题是,我们能否将“可能性率”纳入这一随机生成?
例如,对于A出现在4个字母表中(从A到D),只有24%的几率
而B将以12%的比率出现,等等。
答案 0 :(得分:3)
创建一个包含24个A,12个B和100个C和D的适当数字的100个字母的字符串。生成0到99之间的随机数;使用它作为字符串的索引。这为您提供加权随机选择。
这是一种简单但几乎是图形化的方式。您也可以根据范围来决定。
答案 1 :(得分:2)
例如,A中出现4个字母(从A到D),只有24%的几率,而B将以12%的速率出现,等等。
是的,当然你可以这样做。只需选择介于1和100之间的数字。如果数字在[1,24]范围内,则结果为A.如果数字在[25,36]范围内,则结果为B,依此类推。 / p>
关键是你可以将随机函数的多个结果映射到每个结果上,这样做可以让你调整每个结果的频率。
答案 2 :(得分:1)
您可以通过为每个结果分配%来实现。堆叠百分比使A从0到25,B从26到31等。现在生成0..99范围内的随机数并查看它击中的区域。在视觉上它看起来像这样:
<--A 25%--><-B 5%-><---C30%---><-----D40%----->