[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`的数值作为种子会怎样?
- 目录
- 概述
- 第一章 编写第一个Awk命令
- 1.1 什么是Awk命令
- 1.2 第一个Awk命令
- 第二章 Awk的模式匹配
- 2.1 Awk模式语法规则
- 2.2 Awk模式规则详解
- 第三章 Awk的动作规则
- 3.1 Awk动作匹配语法规则
- 3.2 Awk动作规则详解
- 第四章 Awk数据处理方法
- 4.1 数据转换和提炼
- 4.2 数据验证
- 4.3 数据打包与拆包处理
- 4.4 多行数据处理
- 4.5 随机数生成
- 第五章 Awk的输出报告和脚本封装
- 5.1 输出报告
- 5.2 封装查询结果和报告
- 第六章 Awk实现排序算法
- 6.1 插入排序算法实现
- 6.2 快速排序算法实现
- 6.3 堆排序算法实现
- 6.4 拓扑排序算法实现
- 总结