Por que os números aleatórios no AWK não mudam após a primeira execução?

3

Estou estudando AWK , e quando eu uso o seguinte comando pela segunda vez, por que os números são sempre os mesmo?

Primeira vez:

awk 'BEGIN{for(i=1;i<=10;i++) print int(101*rand())}'
24
29
85
15
59
19
81
17
48
15

Segunda vez consecutiva:

awk 'BEGIN{for(i=1;i<=10;i++) print int(101*rand())}'
24
29
85
15
59
19
81
17
48
15
    
por c4f4t0r 11.03.2015 / 21:47

1 resposta

12

De link

CAUTION: In most awk implementations, including gawk, rand() starts generating numbers from the same starting number, or seed, each time you run awk. Thus, a program generates the same results each time you run it. The numbers are random within one awk run but predictable from run to run. This is convenient for debugging, but if you want a program to do different things each time it is used, you must change the seed to a value that is different in each run. To do this, use srand().

    
por 11.03.2015 / 22:00