如何正确播种随机数生成器

我正在尝试在Go中生成一个随机字符串,这是我到目前为止编写的代码:


package main


import (

    "bytes"

    "fmt"

    "math/rand"

    "time"

)


func main() {

    fmt.Println(randomString(10))

}


func randomString(l int) string {

    var result bytes.Buffer

    var temp string

    for i := 0; i < l; {

        if string(randInt(65, 90)) != temp {

            temp = string(randInt(65, 90))

            result.WriteString(temp)

            i++

        }

    }

    return result.String()

}


func randInt(min int, max int) int {

    rand.Seed(time.Now().UTC().UnixNano())

    return min + rand.Intn(max-min)

}

我的执行速度很慢。使用进行播种time会在一定时间内带来相同的随机数,因此循环会一次又一次地迭代。如何改善我的代码?


米琪卡哇伊
浏览 201回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go