當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Golang rand.Seed()用法及代碼示例

問題解決方法:

在這裏,我們將演示 rand.Seed() 函數的使用。 rand.Seed() 函數用於設置種子值以生成隨機數。如果種子值相同,則 rand.Intn() 函數將生成相同係列的隨機數。如果我們改變種子值,那麽它將生成不同係列的隨機數。

程序/源代碼:

下麵給出了演示 rand.Seed() 函數的源代碼。給定的程序在 ubuntu 18.04 操作係統上編譯和執行成功。

// Golang program to demonstrate the
// rand.Seed() function

package main

import "math/rand"
import "fmt"
import "time"

// Entry point for the program
func main() {
	rand.Seed(100)
	fmt.Println("Random number:", rand.Intn(786))
	fmt.Println("Random number:", rand.Intn(786))

	rand.Seed(100)
	fmt.Println("Random number:", rand.Intn(786))
	fmt.Println("Random number:", rand.Intn(786))

	fmt.Println("\n")

	rand.Seed(time.Now().UnixNano())
	fmt.Println("Random number:", rand.Intn(786))
	fmt.Println("Random number:", rand.Intn(786))

	rand.Seed(time.Now().UnixNano())
	fmt.Println("Random number:", rand.Intn(786))
	fmt.Println("Random number:", rand.Intn(786))
}

輸出:

Random number: 91
Random number: 470
Random number: 91
Random number: 470


Random number: 657
Random number: 585
Random number: 27
Random number: 342

說明:

在上麵的程序中,我們聲明了包 main。 main 包用於告訴 Go 語言編譯器必須編譯該包並生成可執行文件。在這裏,我們將所需的包導入到預定義的函數中。

在 main() 函數中,我們使用 rand.Seed() 函數來設置種子值。在這裏,我們將種子值設置為 100 兩次,然後它會生成相同係列的隨機數。之後,我們使用時間作為種子值,然後生成不同係列的隨機數。





相關用法


注:本文由純淨天空篩選整理自 Golang program to demonstrate the rand.Seed() function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。