我可以使用这个在c中生成两个数字之间的随机数..
arc4random()%(high-low+1)+low;
那么现在我的要求是......我想让一个数字变得稀有......这意味着如果
高=5,
低=1,
稀有=3,
比 3 出现的次数比 1、2、4 和 5 少得多...
Thanks
您可以使用表格来计算您的最终骰子,类似于笔和纸 RPG 进行相同类型计算的方式:
卷 1 D 21(很可能带有代码)。
- 如果得到 1-5,则算作 1
- 如果得到 6-10,则算作 2
- 如果你得到 11-15,则算作 4
- 如果你得到 16-20,则算作 5
- 如果您得到 21,则算作 3
此选项的优点是您可以对正在处理的确切概率有强烈的感觉。您可以确切地了解每个数字的罕见程度或常见程度,并且与其他数字相比,您可以精细地控制每个数字的常见程度。
您还可以使用分数来生成表格。使用最小公倍数 http://www.math.com/school/subject1/lessons/S1U3L3GL.html以确定共同基础。该基数是您需要的最大随机数大小。然后,将所有分数代入同类项中。使用生成的分子确定表中每个数字的范围大小。
通过这种自动化解决方案,输入数字之间的相互关系非常容易理解。例如:
- 1/4 为 1
- 1/4 为 2
- 1/4 为 4
- 1/5 为 5
- 1/20 为 3
这将生成一个如下表:
LCM = 20
- 1-5 = 1(同类项 - 5/20)
- 6-10 = 2 (5/20)
- 11-15 = 4 (5/20)
- 16-19 = 5 (4/20)
- 20 = (1/20)
有关 LCM 的更多信息:http://en.wikipedia.org/wiki/Least_common_multiple http://en.wikipedia.org/wiki/Least_common_multiple
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)