获取指定范围符合正态分布的随机数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)


目录
相关文章
|
7月前
|
Rust 安全 程序员
|
6月前
|
BI 测试技术 索引
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-1
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
2月前
|
数据可视化 数据挖掘 Python
生成100个随机数python并绘制成柱子
通过上述步骤,我们不仅实践了Python编程的基本技巧,如模块导入、列表推导式、循环打印,还踏上了数据可视化的第一步。这样的实践不仅增进了对随机数生成机制的理解,也为数据分析和可视化打下了坚实基础。记住,每一次代码的跳跃,都是向数据科学殿堂迈进的一步。
72 0
|
4月前
|
算法 安全 Linux
如何在 Python 中生成随机数
【8月更文挑战第29天】
278 6
|
6月前
|
Java Go C#
编程语言C#、C++、Java、Python、go 选择哪个好?
我想说的是,不论选择哪种编程语言,决定选择的都是你最终的目的,做选择之前,先充分调研每一个选择项,再做选择思路就会非常清晰了。
139 3
|
5月前
|
监控 程序员 持续交付
`pylint`是一个高度可配置的Python代码分析工具,它可以帮助程序员查找代码中的错误、样式问题、可能的bug以及不符合编码标准的部分。
`pylint`是一个高度可配置的Python代码分析工具,它可以帮助程序员查找代码中的错误、样式问题、可能的bug以及不符合编码标准的部分。
|
6月前
|
Python
python之数值计算、math库、随机数
python之数值计算、math库、随机数
|
6月前
|
存储 API C语言
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-2
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
6月前
|
Go Python
go语言调用python脚本
go语言调用python脚本
96 0
|
7月前
|
Python
【Python进阶(六)】——随机数与数组
【Python进阶(六)】——随机数与数组