如何执行Random的扩展?

Dar*_*Zon 1 c# random algorithm

我试图实现Random类的扩展.

但是这个功能有一个功能,你可以按照步骤获得一个数字.例如:

RandNumb(double min, double max, double step)
RandNumb(1, 10, 2) = 6
RandNumb(100, 1000, 500) = 1000
RandNumb(0.001, 0.1, 0.01) = 0.15
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是从最小到最大得到一个随机数,并比较这是否是一个有效数字(因为步骤).如果没有,再次生成另一个号码.

但我确信这不是一个好的表现.你怎么看?

zer*_*kms 5

刚刚从产生数量min / step,以max / step繁衍产生的结果step.在这种情况下,每个结果都将是"有效的".

在你的解决方案中有什么不好的地方 - 有机会永远不会得到按步骤划分的"有效"数字.