[TOC] # 随机数的生成 > 一说到随机,我们一定会想到 `rand`和`srand`两个伪随机函数。没错,接下来的随机功能都会依赖他们来完成的。 ## 示例:随机选择规则 > 我们先来实现一个生成 1 到 n 的随机数字的功能。 ``` ## randint - 生成随机数x,其中 1 <= x <= n function randint(n) { return int(n * rand()) + 1 } ``` 生成了随机数字后,我们接下来可以利用他来生成随机字母: ``` function randletter() { return substr("abcdefghijklmnopqrstuvwxyz", randint(26), 1) } ``` 同样,类似上面的例子,我们可以利用`randint()`可以输出数组的随机某个元素: ``` print x[randint(n)] ``` 思考问题: - 现在我们执行过程中发现每次随机数字都相同,我们知道原因在`srand`的种子上,试试使用Shell系统变量`$RANDOM`的数值作为种子会怎样?