awk生成随机数

  num=30
  scale=0.5
  
  awk -v N=$num -v scale=$scale 'BEGIN{srand();
      for(i=0;i

srand()生成随机种子,可以包含指定seed的表达式,如srand(1234)如果没有srand(),每次生成的随机数都是一样的,目前未搞清楚原因

rand()生成[0, 1)的随浮点数。

如果需要生成[a,b)范围内的随机数,只需要对rand()生成的随机数做如下运算:

    var1=rand()
    var2 = a+var1*(b-a)

如生成[-1,1)的随机数:

    var1=rand()
    var2 = -1+var1*(1-(-1))
    # 或
    var1=rand()
    var2 = var1*2-1

如果将srand()放在for循环之内,在for循环中生成的随机数都是一个值。

    num=30
    scale=0.5
    
    awk -v N=$num -v scale=$scale 'BEGIN{
        for(i=0;i

参考:
https://www.runoob.com/w3cnote/awk-built-in-functions.html

你可能感兴趣的:(awk生成随机数)