c4f4t0r Asked: 2015-03-12 12:47:42 +0800 CST2015-03-12 12:47:42 +0800 CST 2015-03-12 12:47:42 +0800 CST 为什么 AWK 中的随机数在第一次运行后不会改变? 772 我正在学习AWK,当我第二次使用以下命令时,为什么数字总是相同? 第一次运行: awk 'BEGIN{for(i=1;i<=10;i++) print int(101*rand())}' 24 29 85 15 59 19 81 17 48 15 第二次运行: awk 'BEGIN{for(i=1;i<=10;i++) print int(101*rand())}' 24 29 85 15 59 19 81 17 48 15 linux 1 个回答 Voted Best Answer Paul Haldane 2015-03-12T13:00:14+08:002015-03-12T13:00:14+08:00 来自https://www.gnu.org/software/gawk/manual/html_node/Numeric-Functions.html 注意:在大多数 awk 实现中,包括 gawk rand(),每次运行 awk 时都会从相同的起始数字或种子开始生成数字。因此,程序每次运行时都会产生相同的结果。这些数字在一次 awk 运行中是随机的,但每次运行都是可预测的。这便于调试,但如果你想让程序每次使用时做不同的事情,你必须将种子更改为每次运行时不同的值。为此,请使用srand().
来自https://www.gnu.org/software/gawk/manual/html_node/Numeric-Functions.html