获取指定范围符合正态分布的随机数Go/Python

简介: 获取指定范围符合正态分布的随机数Go/Python

Box-Muller算法

image.png

                             

均值



,标准差




计算:

image.png


go生成符合正态分布随机数:

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

func GetGaussRandomNum(min, max int64) int64 {
  σ := (float64(min) + float64(max)) / 2
  μ := (float64(max) - σ) / 3
  rand.Seed(time.Now().UnixNano())
  x := rand.Float64()
  x1 := rand.Float64()
  a := math.Cos(2*math.Pi*x) * math.Sqrt((-2)*math.Log(x1))
  result := a*μ + σ
  return int64(result)
}

func main() {
  for i := 1; i < 1000; i++ {
  result := GetGaussRandomNum(30, 60)
  fmt.Println(result)
  }
}



python生成符合正态分布随机数:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import random


# 方法一
def getGaussRandomNum(min, max):
    # 比如 生成   50-100  范围内的正态分布的数,均值为75
    # 据 3 sigma 法则,取标准差为 (100-75)/3 = 8.33
    # mu, sigma = 75, 8.33
    # 30-60 mu=45 sig=(60-45)/3=5
    mu = (min + max) / 2
    sigma = (max - mu) / 3
    s = np.random.normal(mu, sigma, 1)
    return int(s)
    # sns.set_palette("hls") #设置所有图的颜色,使用hls色彩空间
    # sns.distplot(s,color="r",bins=1000,kde=True) #绘制直方图,color设置颜色,bins设置直方图的划分数
    # plt.show() #显示验证结果
    
    
# 方法二
def getGaussRandomNum1(min, max):
    mu = (min + max) / 2
    sigma = (max - mu) / 3
    s = random.gauss(mu, sigma)
    return int(s)


目录
相关文章
|
Rust 安全 程序员
|
2月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
572 0
|
BI 测试技术 索引
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-1
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
数据可视化 数据挖掘 Python
生成100个随机数python并绘制成柱子
通过上述步骤,我们不仅实践了Python编程的基本技巧,如模块导入、列表推导式、循环打印,还踏上了数据可视化的第一步。这样的实践不仅增进了对随机数生成机制的理解,也为数据分析和可视化打下了坚实基础。记住,每一次代码的跳跃,都是向数据科学殿堂迈进的一步。
317 0
|
算法 安全 Linux
如何在 Python 中生成随机数
【8月更文挑战第29天】
1121 6
|
Java Go C#
编程语言C#、C++、Java、Python、go 选择哪个好?
我想说的是,不论选择哪种编程语言,决定选择的都是你最终的目的,做选择之前,先充分调研每一个选择项,再做选择思路就会非常清晰了。
443 3
|
监控 程序员 持续交付
`pylint`是一个高度可配置的Python代码分析工具,它可以帮助程序员查找代码中的错误、样式问题、可能的bug以及不符合编码标准的部分。
`pylint`是一个高度可配置的Python代码分析工具,它可以帮助程序员查找代码中的错误、样式问题、可能的bug以及不符合编码标准的部分。
【Python进阶(六)】——随机数与数组
【Python进阶(六)】——随机数与数组
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
570 1
|
资源调度 Python
python 产生随机数
【4月更文挑战第19天】python 产生随机数
327 1

推荐镜像

更多
下一篇
oss云网关配置