43_Go基础_1_10 随机数

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "math/rand"
 6     "time"
 7 )
 8 
 9 func main() {
10 
11     /*
12         生成随机数random:
13             伪随机数,根据一定的算法公式算出来的。
14         math/rand
15     */
16 
17     num1 := rand.Int()
18     fmt.Println(num1) // 5577006791947779410
19 
20     for i := 0; i < 10; i++ {
21         num := rand.Intn(10)   //[0,9]
22         fmt.Printf("%d,", num) // 7,7,9,1,8,5,0,6,0,4,
23         if i == 9 {
24             fmt.Println()
25         }
26     }
27 
28     rand.Seed(1000)
29     num2 := rand.Intn(10)
30     fmt.Println("-->", num2) // --> 5
31 
32     t1 := time.Now()
33     fmt.Println(t1)        // 2021-11-29 09:20:58.2003462 +0800 CST m=+0.002806001
34     fmt.Printf("%T\n", t1) // time.Time
35     // 时间戳:指定时间,距离1970年1月1日0点0分0秒,之间的时间差值:秒,纳秒
36     timeStamp1 := t1.Unix() // 秒
37     fmt.Println(timeStamp1) // 1638148858
38 
39     timeStamp2 := t1.UnixNano()
40     fmt.Println(timeStamp2) // 1638148858200346200
41 
42     // step1:设置种子数,可以设置成时间戳
43     rand.Seed(time.Now().UnixNano())
44     for i := 0; i < 10; i++ {
45         // step2:调用生成随机数的函数
46         fmt.Println("-->", rand.Intn(100)) // 100 以内的随机数
47     }
48 
49     // 区间内的随机数
50     num3 := rand.Intn(46) + 3  // [3,48]
51     fmt.Println(num3)          // 33
52     num4 := rand.Intn(62) + 15 // [15,76]
53     fmt.Println(num4)          // 64
54 
55 }