go - 如何从 Golang 中的一系列随机数中进行选择?

标签 go

在下面的代码中,当 (5) 被选为 Perm 的参数时,我可以从一组随机数 0-4 中进行选择。但是我想从不同的范围(例如 6-10)中选择随机数。请问我怎样才能做到这一点?

r := rand.New(rand.NewSource(time.Now().UnixNano()))
i := r.Perm(5)
fmt.Printf("%v\n", i)
fmt.Printf("%d\n", i[0])
fmt.Printf("%d\n", i[1])

最佳答案

例如,

package main

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

func main() {
    r := rand.New(rand.NewSource(time.Now().UnixNano()))
    min, max := 6, 10
    p := r.Perm(max - min + 1)
    fmt.Println(p)
    for i := range p {
        p[i] += min
    }
    fmt.Println(p)

    for _, r := range p {
        fmt.Println(r)
    }
}

输出:

[1 2 3 4 0]
[7 8 9 10 6]
7
8
9
10
6

关于go - 如何从 Golang 中的一系列随机数中进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35354800/

相关文章:

go - 一段任意结构的接口(interface)用作函数参数(golang)

mongodb - MongoLab 通过 CURL/Golang-http 使用 HTTP PUT 删除多个集合不起作用

string - 在 golang 中将字符串转换为 *uint64

unit-testing - 单元测试 golang 处理程序

go - 有没有一种好方法来更新传递给Golang中子测试的结构

azure - EventHub Golang客户端错误: amqp:internal-error

go - 在 golang 中运行生产可扩展 websocket 服务器库

amazon-web-services - 戈朗 : GET request for presigned url of S3 object with SSE fails with 403 error

multidimensional-array - 戈朗 : Multidimensional array using slice of slice strategy resulting in strange output

for-loop - 如果 panic 发生,恢复并继续 for 循环 Golang