对数正态分布的概率密度函数为

对数正态分布均值为,方差为

首先产生正态分布的随机变量 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语言实现相关推荐

  1. 根据对数正态分布产生随机数

    系统自带的对数正态分布函数lognrnd example m = 1; % 分布的均值 v = 2; % 分布的方差 mu = log((m^2)/sqrt(v+m^2)); % 公式中的均值参数 s ...

  2. R语言对数正态分布分布函数Log Normal Distribution(dlnorm, plnorm, qlnorm rlnorm)实战

    R语言对数正态分布函数Log Normal Distribution(dlnorm, plnorm, qlnorm & rlnorm)实战 目录 R语言对数正态分布函数Log Normal D ...

  3. R语言作业一:矩估计、极大似然估计、拟合、对数正态分布、泊松分布、负二项分布

    一.矩估计.极大似然估计.拟合.对数正态分布 ##导入数据 setwd("C:/Users/chang/Documents/SRM-PA/R简介/上课练习数据集") healthe ...

  4. 如何产生正态分布的随机数?

    如何产生正态分布的随机数? 添加评论 分享 按投票排序按时间排序 28 个回答 86赞同 反对,不会显示你的姓名 Milo Yip,游戏程序员.<游戏引擎架构>译者 Porphyah.熊墩 ...

  5. 对应于对数正态分布的拉丁超立方抽样——Python版

    拉丁超立方抽样-对数正态分布 0.拉丁超立方抽样的理论基础 0.1.概况 0.2.基本原理 0.3.基本步骤 1.导入库和基本准备 2.生成(具有对数正态分布的随机变量)参数的随机数 3.将生成的随机 ...

  6. 使用 C / C++ 产生符合正态分布的随机数

    使用 C / C++ 产生符合正态分布的随机数 利用有box 和 muller 提供的,在 knuth的网上讨论过的方法 (比较常用的方法) 目的:Box-Muller,一般是要得到服从正态分布的随机 ...

  7. R可视化绘制对数正态分布(Log Normal Distribution)

    R可视化绘制对数正态分布(Log Normal Distribution) 为了绘制R中对数正态分布的概率密度函数,我们可以使用以下函数: dlnorm(x, meanlog = 0, sdlog = ...

  8. 对数正态分布_正态分布与幂律分布

    1.正态分布 英国生物统计学家法兰西斯·高尔顿做了一个实验.他在一块木板上画了一块等腰三角形,并在三角形区域内钉上n+1层钉子.第1层钉2个钉子,第2层钉3个钉子,下面每一层都比上一层增加一个钉子,上 ...

  9. [数学]二维对数正态分布的概率分布,期望,方差和相关系数

    最近遇到了一个联合对数正态分布的相关系数的问题,搜遍全网无果,索性自己动手.本文借鉴了这个知乎回答 首先我们有二维正态分布: X , Y ∼ B V N ( μ x , μ y , σ x 2 , σ ...

  10. 机器学习小组知识点17:对数正态分布(Logarithmic Normal Distribution)

    这块儿我是真的没听说过,所以直接抄了维基百科,维基万岁! 概率密度函数 在概率论与统计学中,对数正态分布是对数为正态分布的任意随机变量的概率分布.如果 X X 是正态分布的随机变量,则 exp(X)e ...

最新文章

  1. 静态变量与实例变量的区别
  2. [Linux] 不带JRE版本的LumaQQ安装方法
  3. DeprecationWarning: the md5 module is deprecated; use hashlib instead import md5的解决办法
  4. C++ 位图及位图的实现
  5. 力扣376. 摆动序列(JavaScript)
  6. ubuntu 双击打不开软件或者创建的快捷方式
  7. 一文搞懂什么是免疫算法Immune Algorithm【详细介绍】
  8. nxlog 中文乱码解决
  9. EPUB PDF DOCX格式转换及主流格式电子书制作终极攻略(内含用WORD制作精美EPUB方法)...
  10. linux嵌入式无线中继,openwrt无线中继设置步骤
  11. python知识图谱构建
  12. 用C#通过sql语句操作Sqlserver数据库教程
  13. 对Linux内核tty设备的一点理解(转)
  14. linux运行崩溃怎么定位,Linux 程序崩溃定位
  15. 看我们无处安放的青春
  16. 如何在opengl用代码绘制英文_如何用Python画一只肥肥的柯基狗狗——turtle库绘制椭圆与弧线实践...
  17. windows系统安装时转换硬盘格式为NTFS
  18. net start mysql命令 显示拒绝访问
  19. 我的GH60 - 极客定制GK61XS : eclipse软件开发常用快捷键新增绑定 (亦适用于不使用方向键/HOME/END情况的大牛)
  20. 随机优化和鲁棒优化的区别

热门文章

  1. 2017年十本必读的大数据人工智能领域书籍,你都读过吗?
  2. Codeforces 1027C. Minimum Value Rectangle
  3. STM8S003国产替代 DP32G003 32 位微控制器芯片
  4. golang学习(一)—— 简介
  5. 你会他乡遇故知?-让自己慢下来(51)
  6. Win10 Build 18237发布:登录屏幕启用毛玻璃特效
  7. 点点动画~画出懂你的3D魔方
  8. html div边框宽度,边框的宽度
  9. 黄金比例编程python_python实现黄金分割法
  10. android终端模拟器 apt,借贵吧问个安卓终端模拟器的问题