【发布时间】:2021-07-26 19:51:16
【问题描述】:
我的方法如下:
Num 1 和 Num 2 是指定范围的开始和结束的数字, 生成的随机整数可以是 num 1 或 num 2。
Num1 + rand:uniform(Num2-Num1).
例子:
数字 1 = 3 数字 2 = 20
rand:uniform 返回一个介于 1 和 17 之间的值。然后我再次添加 Num 1, 所以随机值在给定范围内。
我看到这个实现的问题是我的随机数的分布, 因为范围内最小的数字有更高的概率,这取决于 0 和 num 1 之间的距离以及 num 1 和 num 2 之间的范围。
我希望有一个更简单、更优雅的解决方案,它可以均匀地分布整数...
【问题讨论】:
-
您关于一致性的逻辑不正确。添加
Num1会将数轴上的所有值移动该数量,但不会影响范围或均匀性。将数字 1、2 和 3 加上 5 后得到数字 6、7 和 8。如果前一个都有 k,那么后者每个都有 k。 -
谢谢你,这很清楚。你是对的,它只是改变了价值观。
标签: random erlang distribution