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

avi*_*rov 2 c# random

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

Bat*_*eba 5

生成20到50范围内的数字然后丢弃不需要的数字的方案将引入统计偏差.(您将倾向于增加所得分布的方差;特别是如果您的生成器是线性同余的).

最好的方法是在20 - 47范围内生成(称为绘图x说)然后使用进行调整

if (x >= 25) ++x; if (x >= 27) ++x; if (x >= 34) ++x;