当前位置:

【Go】生成随机数random

温馨提示:本文共1343个字,读完预计4分钟。

程序代码如下:
package main

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

func main() {
    num1 := rand.Int() // 返回非负伪随机int类型数据
    fmt.Println(num1)
    for i := 0; i < 10; i++ {
        num := rand.Intn(10) // 生成指定范围的随机数[0, 10)
        fmt.Println(num)
    }
    // 注,只要不设置种子,每次运行产生的随机数固定
    rand.Seed(1)          // 设置随机种子
    num2 := rand.Intn(10) // 生成随机数
    fmt.Println("--->", num2)
    // 可以通过设置时间作为随机数种子,使得每次产生的随机数不同
    t1 := time.Now()
    fmt.Println(t1)        //  查看时间
    fmt.Printf("%T\n", t1) // 查看变量t1的数据类型
    // 获取时间戳(当前时间距离1970 1-1 00:00:00之间的数值)
    timeStamp1 := t1.Unix()     // 秒s为单位
    timeStamp2 := t1.UnixNano() // 纳秒ms为单位
    fmt.Println(timeStamp1)
    fmt.Println(timeStamp2)
    // 真正生成随机数过程
    // step1:设置种子数,可以设置时间戳
    rand.Seed(time.Now().UnixNano())
    for i:=1;i<10;i++{
        // step2:生成随机数
        fmt.Println("--->", rand.Intn(100))
    }
    // 获取指定范围内的随机数,如获取[15, 48]之间的随机数
    num3:= rand.Intn(34) + 15  // n:为两数之差+1,然后加上起始数值即可
    fmt.Println(num3)

}

本文链接:,转发请注明来源!
评论已关闭。