V2版本: 改进操作界面,统一表单样式,更多工具支持批量生成,欢迎使用 到达~


文库 阅读
作者: xiaoyu 05/15 19:06:25

【Golang】多种方式生成伪随机数

一、参数说明

伪随机数生成器函数(int带范围)

Intn(n int) – 它返回 [0,n] 中的非负伪随机数 Int31n(n int32) – 它返回 [0,n] 中的非负伪随机数,但返回 int32 Int63n(n int64) – 它返回 [0,n] 中的非负伪随机数,但返回 int64

伪随机数生成器函数(int不带范围)

Int() – 返回一个非负伪随机 int Int31() – 返回一个非负伪随机 31 位整数作为 int32 Int63() – 返回一个非负伪随机 63 位整数作为 int64 Uint32() – 返回伪随机 32 位值作为 uint32 Uint64() – 返回伪随机 64 位值作为 uint64

伪随机数生成器函数(浮点数)

Float64() – 以 float64 的形式返回 [0.0,1.0] 中的伪随机数 Float32() – 以 float32 的形式返回 [0.0,1.0] 中的伪随机数

二、生成随机数


package main

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

func main() {
    rand.Seed(time.Now().Unix())
    //Pseudo Random Number Generator Functions with range

    //1. Intn(n int)
    fmt.Printf("Intn: %d\n", rand.Intn(10))

    //2. Int31n(n int32)
    fmt.Printf("Int31n: %d\n", rand.Int31n(10))

    //3. Int64n(n int32)
    fmt.Printf("Int64n: %d\n", rand.Int63n(10))

    //Pseudo Random Number Generator Functions without range.

    //1. Int()
    fmt.Printf("Int: %d\n", rand.Int())

    //2. Int31()
    fmt.Printf("Int31: %d\n", rand.Int31())

    //3. Int63()
    fmt.Printf("Int63: %d\n", rand.Int63())
 
    //4. Uint32()
    fmt.Printf("Uint32: %d\n", rand.Uint32())

    //4. Uint64()
    fmt.Printf("Uint64: %d\n", rand.Uint64())

    //Pseudo Random Number Generator Functions with range for floats

    //1. Float64()
    fmt.Printf("Float64: %f\n", rand.Float64())

    //2. Float32()
    fmt.Printf("Float32: %f\n", rand.Float32())
}

三、输出


Intn: 9
Int31n: 4
Int64n: 4
Int: 6567086139449890598
Int31: 402632083
Int63: 428924242891364663
Uint32: 1991553101
Uint64: 825780166485441015
Float64: 0.683701
Float32: 0.382141
参考: https://golangbyexample.com/generate-random-number-golang/
首页 喜欢 我的 定制
定制咨询
微信二维码
扫一扫上面的二维码,加我为朋友。
微信扫码周一至周六服务
接定制开发需求