生成不包含某些数字的随机数

时间:2015-11-13 11:33:26

标签: c# random

有没有办法从一组不包含某些数字的数字中生成一个随机数?例如 - 20-50的随机数,不包括25,27,34。

2 个答案:

答案 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}}