如何使用awk在2个输入之间很好地分配随机整数值?
我正在尝试以下
$ awk -v min=200 -v max=500 ' BEGIN { srand();for(i=0;i<10;i++) print int(min+rand()*100*(max/min)) } '
407
406
360
334
264
365
303
417
249
225
$
awk中是否有更好的方法
答案 0 :(得分:3)
很抱歉通知您您的代码甚至不正确。尝试使用min = max = 10。
类似的事情会起作用。您也可以验证均匀性。
$ awk -v min=200 -v max=210 ' BEGIN{srand();
for(i=0;i<10000;i++) a[int(min+rand()*(max-min))]++;
for(k in a) print k,a[k]}' | sort
200 1045
201 966
202 1014
203 1016
204 985
205 1010
206 988
207 1027
208 986
209 963
还请注意,最小值是包含在内的,而最大值不是。