Go语言程序演示rand包的使用


在Go语言中,rand包用于生成随机数/字符。首先,它使用当前时间进行种子初始化,以便每次都能获得不同的随机输出,然后执行任何操作。

语法

rand.Seed(value)

**Rand.Seed()** 函数用于生成随机数。它接受用户输入作为参数,该参数是生成随机数的上限。

func Now() Time

**Now()** 函数定义在 time 包中。此函数生成当前本地时间。要使用此函数,我们必须首先在程序中导入 time 包。

func (t Time) UnixNano() int64

**UnixNano()** 函数定义在 time 包中。此函数用于获取自 1970 年 1 月 1 日(UTC)以来经过的秒数。它返回的最终结果是 64 位整数类型。

rand.Intn(n)

**Intn()** 函数定义在 math/rand 包中。它用于在 [0, n] 区间内生成随机数,其中 n 是用户提供的数字。如果提供的数字小于 0,则该函数会抛出错误。

func Strings(src []string) []string

**strings** 函数定义在 sort 包中。此函数接受我们要排序的字符串格式数组,并通过对该数组进行排序返回结果。

func make ([] type, size, capacity)

Go 语言中的 **make** 函数用于创建数组/映射,它接受要创建的变量的类型、大小和容量作为参数。

func range(variable)

**range** 函数用于迭代任何数据类型。要使用它,我们首先必须编写 range 关键字,然后是我们要迭代的数据类型,结果循环将迭代到变量的最后一个元素。

算法

  • **步骤 1** - 在程序中导入所需的包

  • **步骤 2** - 创建一个 main 函数

  • **步骤 3** - 在 main 函数中使用当前时间为随机数生成器设置种子,以便每次获得不同的输出

  • **步骤 4** - 使用 rand 包中的函数执行不同的操作

  • **步骤 5** - 使用 fmt 包中的 Println 函数在控制台上打印输出

示例 1

在此示例中,随机数生成器将使用当前时间进行种子初始化以获得新的随机数。然后,在前两个例子中将生成随机整数和浮点数,然后打印随机排列。

package main

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


func main() {
   rand.Seed(time.Now().UnixNano())
   random_integer := rand.Intn(50)
   fmt.Println("Random integer:", random_integer)
   random_floatnum := rand.Float64()
   fmt.Println("Random float:", random_floatnum)  	
   random_permutation := rand.Perm(20)
   fmt.Println("Random permutation:", random_permutation) 
}

输出

Random integer: 0
Random float: 0.5038452930984003
Random permutation: [2 3 1 6 8 16 17 12 7 10 13 11 4 5 18 14 9 0 19 15]

示例 2

在此示例中,将进行种子初始化,然后将使用 Go 语言中的内置函数 make 创建一个名为 password_value 的变量,用于保存从字符集中生成的随机密码。

package main

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

const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" 

func main() {	 
   rand.Seed(time.Now().UnixNano())	
   password_value := make([]byte, 6)
   for i := range password_value {
      password_value[i] = charset[rand.Intn(len(charset))]  
   }
   fmt.Println("Random password:", string(password_value)) 
}

输出

Random password: 2sdGzJ

结论

我们编译并执行了两个示例程序,演示了 rand 包的使用。在第一个示例中,我们通过生成随机整数、浮点数和排列来执行不同的操作。在第二个示例中,生成了一个随机密码以展示 rand 包的使用。这两个示例都给出了预期的随机输出。

更新于:2023年4月4日

浏览量:273

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.