go获取指定区间范围内随机数(全)

简介: go获取指定区间范围内随机数(全)

代码实例

package main

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

func main() {
  // 由于go语言未提供2个区间参数,只一个参数的情况下先随机0到(m-n),再用加 n 的方式解决
  // 例:[5, 10], 先生成[0,5], 再加5
  
  // go取随机数需要指定一个随机种子
  // 种子一般使用当前的系统时间,这是完全随机的。
  
  for i := 0; i < 50; i++ {
  // res := getRandomWithAll(5, 10)
  // res := getRandomWithMin(5, 10)
  // res := getRandomWithMax(5, 10)
  res := getRandomWithNo(5, 10)
  fmt.Println(res)
  }
  
}

// 包含上下限 [min, max]
func getRandomWithAll(min, max int) int64 {
  rand.Seed(time.Now().UnixNano())
  return int64(rand.Intn(max-min+1) + min)
}

// 不包含上限 [min, max)
func getRandomWithMin(min, max int) int64 {
  rand.Seed(time.Now().UnixNano())
  return int64(rand.Intn(max-min) + min)
}

// 不包含下限 (min, max]
func getRandomWithMax(min, max int) int64 {
  var res int64
  rand.Seed(time.Now().UnixNano())
Restart:
  res = int64(rand.Intn(max-min+1) + min)
  if res == int64(min) {
  goto Restart
  }
  return res
}

// 都不包含 (min, max)
func getRandomWithNo(min, max int) int64 {
  var res int64
  rand.Seed(time.Now().UnixNano())
Restart:
  res = int64(rand.Intn(max-min) + min)
  if res == int64(min) {
  goto Restart
  }
  return res
}
目录
相关文章
|
Go
Go语言 rand(随机数)包
Go语言 rand(随机数)包
260 0
Go 语言控制台输入&生成随机数
Go 语言控制台输入&生成随机数
Go 语言控制台输入&生成随机数
|
Unix Go
Go中使用Seed得到重复随机数的问题
重复的随机数 废话不多说,首先我们来看使用seed的一个很神奇的现象。 func main() { for i := 0; i < 5; i++ { rand.Seed(time.
|
Go
Go——小白学习随机数冒泡排序
需要注意的几点: (1)for/if 的大括号必须跟在条件句的后面 (2)在推导定义变量时,冒号等号中间不能有空格 (3)在输出数组时,比较简答的输出是  fmt.
833 0
|
1月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
154 1
|
3月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
286 1
|
9月前
|
运维 监控 算法
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
|
3月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
360 0
|
3月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
233 0
|
3月前
|
Cloud Native Java 中间件
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
212 0