关于go:Go-快速入门指南-随机数

概述

调用 rand 包 即可,重要的一点是每次生成随机数之前,都设置随机数生成种子,否则可能每次生成的随机数都一样。

例子

随机生成数字

package main

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

func main() {
    rand.Seed(time.Now().UnixNano()) // 以以后工夫的纳秒单位为种子

    for i := 0; i < 5; i++ {
        fmt.Println(rand.Int())
    }
}

// $ go run main.go
// 输入如下, 你的输入应该和这里的不一样
/**
  6322308781580164811
  8102638055079193560
  8689011158917073467
  6408490946268327546
  2346011052422006168
*/

随机生成指定区间数字

package main

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

func main() {
    s := rand.NewSource(time.Now().UnixNano()) // 以以后工夫的纳秒单位为种子
    r := rand.New(s)

    for i := 0; i < 5; i++ {
        fmt.Println(r.Intn(10))
    }
}

// $ go run main.go
// 输入如下, 你的输入应该和这里的不一样
/**
  5
  9
  7
  1
  3
*/

分割我

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理