有没有办法从一组不包含某些数字的数字中生成一个随机数?例如 - 20-50的随机数,不包括25,27,34。
答案 0 :(得分:5)
一种方案,您生成20到50范围内的数字,然后丢弃您不想要的数字将引入统计偏差。 (您将倾向于增加所得分布的方差;特别是如果您的生成器是线性同余的。)
最好的方法是在20 - 47范围内生成(调用图x
说),然后使用
if (x >= 25) ++x;
if (x >= 27) ++x;
if (x >= 34) ++x;
答案 1 :(得分:2)
@Yeldar Kurmangaliyev的LINQ实施评论:
{{1}}