[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 拓撲排序算法實現
- 總結