在Golang中生成随机数

在Golang中生成随机数

随机数在许多应用程序中扮演着重要角色,从计算机游戏到加密。 Go语言具有一个名为“math/rand”的内置包,提供了一系列用于生成随机数的函数。 在本文中,我们将探讨如何使用“math/rand”包在Go语言中生成随机数。

生成随机整数

要生成随机整数,我们可以使用“math/rand”包中的“Intn()”函数。 “Intn()”函数将一个整数n作为其参数,返回一个在0和n-1之间的随机整数。

示例

package main

import (
   "fmt"
   "math/rand"
)

func main() {
   // 生成一个在0和99之间的随机整数
   randomInt := rand.Intn(100)
   fmt.Println(randomInt)
}
Go

输出

81
Go

生成随机浮点数

要生成随机浮点数,我们可以使用“math/rand”包中的“Float64()”函数。 “Float64()”函数返回介于0.0和1.0之间的随机浮点数。

示例

package main

import (
   "fmt"
   "math/rand"
)

func main() {
   // 生成一个在0.0和1.0之间的随机浮点数
   randomFloat := rand.Float64()
   fmt.Println(randomFloat)
}
Go

输出

0.6046602879796196
Go

设置种子值

要在每次运行程序时生成相同的随机数序列,我们可以使用“math/rand”包中的“Seed()”函数设置种子值。 “Seed()”函数将一个整数作为其参数,并初始化随机数生成器。

示例

package main

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

func main() {
   // 设置一个种子值以每次生成不同的随机数序列
   rand.Seed(time.Now().UnixNano())

   // 生成一个在0和99之间的随机整数
   randomInt := rand.Intn(100)
   fmt.Println(randomInt)

   // 生成一个在0.0和1.0之间的随机浮点数
   randomFloat := rand.Float64()
   fmt.Println(randomFloat)
}
Go

输出

56
0.295370367780173
Go

生成随机排列

要生成切片的随机排列,我们可以使用“math/rand”包中的“Perm()”函数。 “Perm()”函数将一个整数n作为其参数,并返回整数[0,n)的随机排列。

示例

package main

import (
   "fmt"
   "math/rand"
)

func main() {
   // 生成整数[0,5)的随机排列
   perm := rand.Perm(5)
   fmt.Println(perm)
}
Go

输出

[0 4 2 3 1]
Go

结论

在本文中,我们探讨了如何使用“math/rand”包在Go语言中生成随机数。 我们学习了如何生成随机整数和浮点数,设置种子值以生成相同的随机数序列,以及生成切片的随机排列。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册