利用Golang生成整数随机数方法示例

 更新时间:2017年04月26日 14:54:25   作者:小谈  
这篇文章主要介绍了利用Golang生成整数随机数的相关资料,文中给出了详细的介绍和完整的示例代码,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

php随机数

生成一个给定范围的随机数,用 PHP 就太简单不过了,而且可以指定从负数到正整数的范围,如:

<?php
echo mt_rand(-988, 888);

这样就随机生成 -988 到 888 的随机数。

使用 Go 就要稍微麻烦一点。以下两个函数分别是生成一个最大范围内随机整数,和生成一个区间范围的随机整数:

生成一个最大范围内随机数

一定要给一个时间戳的种子,否则每次生成都是一样的值。这里就是生成 [0,100) 的随机数。

func GenerateRandnum() int {
 rand.Seed(time.Now().Unix())
 randNum := rand.Intn(100)
 return randNum
}

生成一个给定范围的随机数

这里实际上跟生成一个给定最大值内的随机数一样,只是有一个最大和最小范围的处理。

func GenerateRangeNum(min, max int) int {
 rand.Seed(time.Now().Unix())
 randNum := rand.Intn(max - min) + min
 return randNum
}

完整示例如下:

func main() {
 GenerateRandnum()
 GenerateRangeNum(888, 900)
}

package main
 
import (
 "fmt"
 "math/rand"
 "time"
)
 
// GenerateRandnum 生成最大范围内随机数
func GenerateRandnum() int {
 rand.Seed(time.Now().Unix())
 randNum := rand.Intn(100)
 
 fmt.Printf("rand is %v\n", randNum)
 
 return randNum
}
 
// GenerateRangeNum 生成一个区间范围的随机数
func GenerateRangeNum(min, max int) int {
  rand.Seed(time.Now().Unix())
 randNum := rand.Intn(max - min)
 randNum = randNum + min
 fmt.Printf("rand is %v\n", randNum)
 return randNum
}
 
func main() {
 GenerateRandnum()
 GenerateRangeNum(888, 900)
}

运行结果:

➜ examples git:(master) ✗ go run range.go

rand is 52

rand is 892

➜ examples git:(master) ✗ go run range.go

rand is 53

rand is 889

➜ examples git:(master) ✗ go run range.go

rand is 53

rand is 889

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Centos下搭建golang环境及vim高亮Go关键字设置的方法

    Centos下搭建golang环境及vim高亮Go关键字设置的方法

    这篇文章先给大家详细介绍了在Centos下搭建golang环境的步骤,大家按照下面的方法就可以自己搭建golang环境,搭建完成后又给大家介绍了vim高亮Go关键字设置的方法,文中通过示例代码介绍的很详细,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-11-11
  • 谈论Go 什么时候会触发 GC问题

    谈论Go 什么时候会触发 GC问题

    Go 语言作为一门新语言,在早期经常遭到唾弃的就是在垃圾回收(下称:GC)机制中 STW(Stop-The-World)的时间过长。下面文章就对此话题展开,感兴趣的小伙伴可以参考下面文章的内容
    2021-09-09
  • go sync.Map基本原理深入解析

    go sync.Map基本原理深入解析

    这篇文章主要为大家介绍了go sync.Map基本原理深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • GO语言实现标题闪烁效果

    GO语言实现标题闪烁效果

    这篇文章主要介绍了GO语言实现标题闪烁效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 聊聊Golang的语言结构和变量问题

    聊聊Golang的语言结构和变量问题

    这篇文章主要介绍了Golang的语言结构和变量问题,在golang中定义变量的一般形式是使用 var 关键字,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • Golang 发送http请求时设置header的实现

    Golang 发送http请求时设置header的实现

    这篇文章主要介绍了Golang 发送http请求时设置header的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 使用Golang进行比较版本号大小

    使用Golang进行比较版本号大小

    在日常开发中,比较版本号大小的情况是经常遇到的,这篇文章主要为大家详细介绍了如何使用Golang进行比较版本号大小,需要的小伙伴可以参考下
    2024-01-01
  • GO开发编辑器安装图文详解

    GO开发编辑器安装图文详解

    这篇文章主要介绍了GO开发编辑器安装,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Go语言实现二维数组的2种遍历方式以及案例详解

    Go语言实现二维数组的2种遍历方式以及案例详解

    这篇文章主要介绍了Go语言实现二维数组的2种遍历方式以及案例详解,图文代码声情并茂,有感兴趣的可以学习下
    2021-03-03
  • 详解如何在Golang中实现HMAC

    详解如何在Golang中实现HMAC

    HMAC(Hash-based Message Authentication Code)是一种基于 Hash 函数和密钥的消息认证码,HMAC将密钥、消息和哈希函数一起使用,确保消息在传输过程中不被篡改,还可以验证消息的发送者身份,本文详细讲解了如何在Golang中实现HMAC,需要的朋友可以参考下
    2023-11-11

最新评论