Golang生成随机数案例实战
Golang生成随机数案例实战
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.生成1个[0-99]的随机数案例
package main import ( "fmt" "math/rand" "time" ) func main() { /* rand.Seed: 还函数是用来创建随机数的种子,如果不执行该步骤创建的随机数是一样的,因为默认Go会使用一个固定常量值来作为随机种子。 time.Now().UnixNano(): 当前操作系统时间的毫秒值 */ rand.Seed(time.Now().UnixNano()) /* 生成一个随机数 */ a := rand.Intn(100) //实际随机生成的数字范围[0,99] fmt.Printf("a的类型为[%T],a的随机数值为:[%d]\n", a, a) }
二.生成10个[200-500]的随机数案例
package main import ( "fmt" "math/rand" "time" ) func main() { /* rand.Seed: 还函数是用来创建随机数的种子,如果不执行该步骤创建的随机数是一样的,因为默认Go会使用一个固定常量值来作为随机种子。 time.Now().UnixNano(): 当前操作系统时间的毫秒值 */ rand.Seed(time.Now().UnixNano()) /* 生成十个随机数[200-500] */ for index := 1; index <= 10; index++ { random_number := rand.Intn(301) + 200 fmt.Printf("第[%d]个随机数的值为:[%d]\n", index, random_number) } }
三.烧脑版生成随机数[需要指针知识]
package main import ( "fmt" "math/rand" "time" ) func getRandomNumber(p *int, start_pos int, stop_pos int) { /* rand.Seed: 还函数是用来创建随机数的种子,如果不执行该步骤创建的随机数是一样的,因为默认Go会使用一个固定常量值来作为随机种子。 time.Now().UnixNano(): 当前操作系统时间的毫秒值 */ rand.Seed(time.Now().UnixNano()) random_number := rand.Intn(stop_pos-start_pos) + start_pos /* 将指针作为参数传递,形参间接修改实参的值 */ *p = random_number } func main() { /* 定义要生成随机值的范围 */ var ( start_pos int = 200 stop_pos int = 500 num int ) for index := 1; index <= 10; index++ { /* 每次循环时让CPU休息1毫秒,因为CPU执行太快,可能10此循环几乎在同一纳秒执行完毕。 我暂时想到的解决方案有两种: (1)以形参的方式传入随机种子值 (2)让主线程在不同的时间段调用函数 上面两种思路均可,我为了省事情就直接让主线程休眠1毫秒,即采用了第二种解决方案。 */ time.Sleep(1) getRandomNumber(&num, start_pos, stop_pos) fmt.Printf("第[%d]个随机数的值为:[%d]\n", index, num) } }
本文来自博客园,作者:尹正杰,转载请注明原文链接:https://www.cnblogs.com/yinzhengjie/p/12208030.html,个人微信: "JasonYin2020"(添加时请备注来源及意图备注,有偿付费)
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
2019-01-18 运维开发笔记整理-序列化
2019-01-18 MySQL中的主键,外键有什么作用详解