有没有办法在范围内使用$ urandom / $ random?
我成功地通过以下方式使用最大范围(在这种情况下,11是最大范围):
temp = (($urandom(9)%11));
但我怎么能用max和min来做,例如max = 11,min = 8。
答案 0 :(得分:1)
您需要$urandom_range
,例如:
temp = $urandom_range(maxVal,minVal);
minVal
是可选的;如果你把它排除在外,最小值就是零。
答案 1 :(得分:1)
另请注意,$ urandom_range的参数是int unsigned,因此-1将被视为非正数,如果minVal大于maxVal,则会自动交换它们。
$ urandom_range非常方便,但您也可以查看std :: randomize()并使用'inside'进行内联约束,例如:
ok = std::randomize(a) with {a inside {0, [12:23], 42}; };