Go基础_1_10 随机数

Tutorial: Go初级 Category: Go Published: 2026-04-07 13:58:26 Views: 21 Likes: 0 Comments: 0
package main

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {

    /*
        生成随机数random:
            伪随机数,根据一定的算法公式算出来的。
        math/rand
    */

    num1 := rand.Int()
    fmt.Println(num1) // 5577006791947779410

    for i := 0; i < 10; i++ {
        num := rand.Intn(10)   //[0,9]
        fmt.Printf("%d,", num) // 7,7,9,1,8,5,0,6,0,4,
        if i == 9 {
            fmt.Println()
        }
    }

    rand.Seed(1000)
    num2 := rand.Intn(10)
    fmt.Println("-->", num2) // --> 5

    t1 := time.Now()
    fmt.Println(t1)        // 2021-11-29 09:20:58.2003462 +0800 CST m=+0.002806001
    fmt.Printf("%T\n", t1) // time.Time
    // 时间戳:指定时间,距离1970年1月1日0点0分0秒,之间的时间差值:秒,纳秒
    timeStamp1 := t1.Unix() // 秒
    fmt.Println(timeStamp1) // 1638148858

    timeStamp2 := t1.UnixNano()
    fmt.Println(timeStamp2) // 1638148858200346200

    // step1:设置种子数,可以设置成时间戳
    rand.Seed(time.Now().UnixNano())
    for i := 0; i < 10; i++ {
        // step2:调用生成随机数的函数
        fmt.Println("-->", rand.Intn(100)) // 100 以内的随机数
    }

    // 区间内的随机数
    num3 := rand.Intn(46) + 3  // [3,48]
    fmt.Println(num3)          // 33
    num4 := rand.Intn(62) + 15 // [15,76]
    fmt.Println(num4)          // 64

}