且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

learn go random

更新时间:2022-08-12 21:16:13

 1 package main
 2 
 3 // 参考文档:
 4 //     go 基本类型和运算符
 5 //         https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/04.5.md
 6 
 7 // 引入需要使用的类
 8 import (
 9     "fmt"           // 格式化输出
10     "math/rand"     // 数学随机数
11     "time"          // 时间
12 )
13 
14 func main () {
15     // 获取整形随机数
16     for i := 0; i < 10; i++ {
17         a := rand.Int()
18         fmt.Printf("%d / ", a)
19     }
20     fmt.Println()
21 
22     // 函数 rand.Intn 返回介于 [0, n) 之间的伪随机数。
23     for i := 0; i < 5; i++ {
24         r := rand.Intn(8)
25         fmt.Printf("%d / ", r)
26     }
27     fmt.Println()
28 
29     // 使用 Seed(value) 函数来提供伪随机数的生成种子,一般情况下都会使用当前时间的纳秒级数字
30     timens := int64(time.Now().Nanosecond())
31     rand.Seed(timens)
32     for i := 0; i < 10; i++ {
33         // 函数 rand.Float32 和 rand.Float64 返回介于 [0.0, 1.0) 之间的伪随机数,其中包括 0.0 但不包括 1.0。
34         fmt.Printf("%2.2f /", 100*rand.Float32())
35     }
36     fmt.Println()
37 }