如何在排除某些范围的同时生成范围内的随机数.例如.范围1-10但不是2-4或7.我到目前为止使用的解决方案:
如果它在不允许的范围内,则生成随机测试.根据结果输出数字或重试.
将范围映射到统一范围.获得1到6之间的随机值然后映射回来(即6变为10).
创建允许的范围(1-1,5-6,8-10).随机选择一个范围(可选择使用权重)和所选范围内的数字.
你的解决方案是什么?
(b)使用单一范围并映射到允许的值.
(a)较慢且运行时间不确定,因为您必须等到获得正确范围内的数字.如果你要跳过很大的范围,你就会受到冲击.
(c)比(b)更复杂; 如果不需要,不要增加复杂性.