📌  相关文章
📜  go rand seed - Go 编程语言 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 14:41:32.289000             🧑  作者: Mango

Go rand Seed

在 Go 编程语言中,rand 包提供了生成伪随机数的功能。为了让每次运行程序时得到不同的随机数序列,我们需要设置一个种子(seed)。本文将介绍如何在 Go 中设置种子以生成随机数序列。

rand 包简介

rand 包是 Go 标准库中的一个包,用于生成伪随机数。它提供了许多生成不同类型随机数的函数,例如整数、浮点数和字节序列等。为了得到不同的随机数序列,我们必须在生成随机数之前设置一个种子。

设置种子

在 Go 中设置种子的方法是使用 rand.Seed(seed int64) 函数。这个函数用于初始化生成伪随机数的算法。

通常,我们使用当前时间作为种子,以确保每次运行程序时得到不同的随机数序列。以下是一个示例代码:

package main

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

func main() {
	// 使用当前时间作为种子
	rand.Seed(time.Now().UnixNano())

	// 生成随机数
	randomNum := rand.Intn(100)
	fmt.Println(randomNum)
}

在上面的示例中,我们首先导入了 fmtmath/randtime 包。然后,我们使用 time.Now().UnixNano() 函数获取当前时间的纳秒级表示,作为种子传递给 rand.Seed() 函数。

接下来,我们使用 rand.Intn(100) 生成一个 0 到 99 之间的随机整数,并将其打印到控制台上。

请注意,种子只需设置一次即可。之后的随机数生成将基于该种子。

总结

通过设置种子,我们可以在 Go 中生成不同的随机数序列。本文介绍了使用 rand.Seed() 函数设置种子的方法,并提供了一个示例代码。记住,每次运行程序时都会生成不同的随机数,因为种子是基于当前时间的。

要深入了解 rand 包的更多功能,请参阅 Go 官方文档