gpt4 book ai didi

random - 在 Go 中生成随机数

转载 作者:IT老高 更新时间:2023-10-28 13:00:47 24 4
gpt4 key购买 nike

我试图在 Go 中生成随机数(整数),但无济于事。我在 crypto/rand 中找到了 rand 包,这似乎是我想要的,但我无法从文档中得知如何使用它。这就是我现在正在尝试的:

    b := []byte{}
something, err := rand.Read(b)
fmt.Printf("something = %v\n", something)
fmt.Printf("err = %v\n", err)

但不幸的是,这总是输出:

    something = 0
err = <nil>

有没有办法解决这个问题,以便它实际生成随机数?或者,有没有办法设置生成的随机数的上限?

最佳答案

根据您的用例,另一个选项是 math/rand 包。如果您要生成需要完全不可预测的数字,请不要这样做。但是,如果您需要获得可重现的结果,这会很有帮助 - 只需传递您第一次传递的同一个种子。

这是经典的“以当前时间为生成器播种并生成一个数字”程序:

package main

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

func main() {
rand.Seed(time.Now().Unix())
fmt.Println(rand.Int())
}

关于random - 在 Go 中生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6181260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com