对数正态分布的随机数产生 C语言实现
对数正态分布的概率密度函数为
对数正态分布均值为,方差为
首先产生正态分布的随机变量 y ,然后通过变换产生对数正态分布的随机变量 x 。具体方法如下:
(1)产生正态分布的随机数 y ,即
(2)计算
1、lognorm.h
#pragma once
#ifndef LOGNORM_H_
#define LOGNORM_H_/*
函数功能: 产生对数的随机数
输入参数说明:
u 对数正太分布的参数
sigma 对数正太分布的参数
seed 长整型指针变量, *seed 为伪随机数的种子
*/double lognorm_data(double u, double sigma, long int * seed);#endif // !LOGNORM_H_
2、lognrm.c 文件
#include "lognorm.h"#include <stdint.h>
#include "string.h"
#include "stdio.h"
#include <math.h>
#include "guass.h"/*
函数功能: 产生对数的随机数
输入参数说明:
u 对数正太分布的参数
sigma 对数正太分布的参数
seed 长整型指针变量, *seed 为伪随机数的种子
*/double lognorm_data(double u, double sigma, long int * seed)
{double x, y;y = guass_data(u, sigma, seed);x = exp(y);return x;
}
高斯分布随机数的产生有关代码见以下链接
产生正态分布(高斯分布)随机数 C语言实现_jk99528878769的博客-CSDN博客C语言实现 产生正态分布(高斯分布)随机数https://blog.csdn.net/jk99528878769/article/details/124457234?spm=1001.2014.3001.5501
3、main.c
#include <stdio.h>
#include <string.h>
#include "lognorm.h"int main()
{// 产生50个对数正太分布的随机数int i, j;long int s;double u, x, sigma;u = 0.0; sigma = 0.5; s = 13579;for (i = 0; i < 10; i++){for (j = 0; j < 5; j++){x = lognorm_data(u, sigma, &s);printf("%13.7f",x);}printf("\n");} getchar(); // 此行代码是为了保持输出窗口,按任意按键关闭弹窗return 0;
}
4、运行输出结果
对数正态分布的随机数产生 C语言实现相关推荐
- 根据对数正态分布产生随机数
系统自带的对数正态分布函数lognrnd example m = 1; % 分布的均值 v = 2; % 分布的方差 mu = log((m^2)/sqrt(v+m^2)); % 公式中的均值参数 s ...
- R语言对数正态分布分布函数Log Normal Distribution(dlnorm, plnorm, qlnorm rlnorm)实战
R语言对数正态分布函数Log Normal Distribution(dlnorm, plnorm, qlnorm & rlnorm)实战 目录 R语言对数正态分布函数Log Normal D ...
- R语言作业一:矩估计、极大似然估计、拟合、对数正态分布、泊松分布、负二项分布
一.矩估计.极大似然估计.拟合.对数正态分布 ##导入数据 setwd("C:/Users/chang/Documents/SRM-PA/R简介/上课练习数据集") healthe ...
- 如何产生正态分布的随机数?
如何产生正态分布的随机数? 添加评论 分享 按投票排序按时间排序 28 个回答 86赞同 反对,不会显示你的姓名 Milo Yip,游戏程序员.<游戏引擎架构>译者 Porphyah.熊墩 ...
- 对应于对数正态分布的拉丁超立方抽样——Python版
拉丁超立方抽样-对数正态分布 0.拉丁超立方抽样的理论基础 0.1.概况 0.2.基本原理 0.3.基本步骤 1.导入库和基本准备 2.生成(具有对数正态分布的随机变量)参数的随机数 3.将生成的随机 ...
- 使用 C / C++ 产生符合正态分布的随机数
使用 C / C++ 产生符合正态分布的随机数 利用有box 和 muller 提供的,在 knuth的网上讨论过的方法 (比较常用的方法) 目的:Box-Muller,一般是要得到服从正态分布的随机 ...
- R可视化绘制对数正态分布(Log Normal Distribution)
R可视化绘制对数正态分布(Log Normal Distribution) 为了绘制R中对数正态分布的概率密度函数,我们可以使用以下函数: dlnorm(x, meanlog = 0, sdlog = ...
- 对数正态分布_正态分布与幂律分布
1.正态分布 英国生物统计学家法兰西斯·高尔顿做了一个实验.他在一块木板上画了一块等腰三角形,并在三角形区域内钉上n+1层钉子.第1层钉2个钉子,第2层钉3个钉子,下面每一层都比上一层增加一个钉子,上 ...
- [数学]二维对数正态分布的概率分布,期望,方差和相关系数
最近遇到了一个联合对数正态分布的相关系数的问题,搜遍全网无果,索性自己动手.本文借鉴了这个知乎回答 首先我们有二维正态分布: X , Y ∼ B V N ( μ x , μ y , σ x 2 , σ ...
- 机器学习小组知识点17:对数正态分布(Logarithmic Normal Distribution)
这块儿我是真的没听说过,所以直接抄了维基百科,维基万岁! 概率密度函数 在概率论与统计学中,对数正态分布是对数为正态分布的任意随机变量的概率分布.如果 X X 是正态分布的随机变量,则 exp(X)e ...
最新文章
- 静态变量与实例变量的区别
- [Linux] 不带JRE版本的LumaQQ安装方法
- DeprecationWarning: the md5 module is deprecated; use hashlib instead import md5的解决办法
- C++ 位图及位图的实现
- 力扣376. 摆动序列(JavaScript)
- ubuntu 双击打不开软件或者创建的快捷方式
- 一文搞懂什么是免疫算法Immune Algorithm【详细介绍】
- nxlog 中文乱码解决
- EPUB PDF DOCX格式转换及主流格式电子书制作终极攻略(内含用WORD制作精美EPUB方法)...
- linux嵌入式无线中继,openwrt无线中继设置步骤
- python知识图谱构建
- 用C#通过sql语句操作Sqlserver数据库教程
- 对Linux内核tty设备的一点理解(转)
- linux运行崩溃怎么定位,Linux 程序崩溃定位
- 看我们无处安放的青春
- 如何在opengl用代码绘制英文_如何用Python画一只肥肥的柯基狗狗——turtle库绘制椭圆与弧线实践...
- windows系统安装时转换硬盘格式为NTFS
- net start mysql命令 显示拒绝访问
- 我的GH60 - 极客定制GK61XS : eclipse软件开发常用快捷键新增绑定 (亦适用于不使用方向键/HOME/END情况的大牛)
- 随机优化和鲁棒优化的区别