【Go】生成隨機數random

官方文檔地址:https://golang.google.cn/pkg/math/rand/
代碼案例如下:

1. 獲取整數的隨機

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)

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章