一、产生随机变量的逆变换方法

定理:设F(x)是任一连续的分布函数,如果,且那么.

证明 由于,则有

所以

此定理给出了从均匀分布随机数到给定分布的随机数的变换,根据该变换可以生分布函数为的随机数,其算法可以用下列两个步骤实现:

(1)产生均匀分布的随机数,即

(2)计算

二、产生指数随机分布随机数的方法

指数分布的概率密度函数为

其分布函数为

指数分布的均值为,方差为

根据上述的逆变换法,产生指数分布随机数的方法为

(1)产生均匀分布的随机数,即

(2)计算

1、exponent.h 文件

#pragma once
#ifndef EXPONENT_H_
#define EXPONENT_H_/*
函数功能:    产生指数分布的随机数
输入参数说明:
beta        指数分布的均值
seed        长整型指针变量, *seed 为伪随机数的种子
*/
double exponent_data(double beta,  long int * seed);#endif // !EXPONENT_H_

2、exponent.c文件

#include "exponent.h"#include <stdint.h>
#include "string.h"
#include "stdio.h"
#include "uniform.h"
#include <math.h>/*
函数功能:    产生指数分布的随机数
输入参数说明:
beta        指数分布的均值
seed        长整型指针变量, *seed 为伪随机数的种子
*/
double exponent_data(double beta, long int * seed)
{double u, x;u =  uniform_data(0.0, 1.0, seed);x = -beta * log(u);return x;
}

3、主程序main.c

#include <stdio.h>
#include <string.h>
#include "uniform.h"
#include "exponent.h"int main()
{// 产生50个指数分布的随机数int i, j;long int s;double x, beta;beta = 2.0;  s = 13579;for (i = 0; i < 10; i++){for (j = 0; j < 5; j++){x = exponent_data(beta,  &s);printf("%13.7f",x);}printf("\n");}  getchar();      // 此行代码是为了保持输出窗口,按任意按键关闭弹窗return 0;
}

4、代码运行结果

产生指数分布的随机数 C语言实现相关推荐

  1. java实现指数分布_Nim 语言编程实现指数分布的随机数

    这一节,我们使用 Nim 语言来实现符合指数分布的随机数. Nim 语言是一门高效而优雅的系统级编程语言,可以编译成 C, C++, javascript 等后端. 官网如下:https://nim- ...

  2. python生成指数分布随机数_Nim 语言入门之实现指数分布的随机数

    这一节,我们使用 Nim 语言来实现符合指数分布的随机数. Nim 语言是一门高效而优雅的系统级编程语言,可以编译成 C, C++, javascript 等后端. 官网如下:https://nim- ...

  3. 产生拉普拉斯分布随机数--C语言实现

    1.产生随机变量的组合法 将分布函数分解为若干个较简单的子分布函数的线性组合 其中且,是分布函数. 定理:若随机变量,即,并且,取; 证明的分布函数为 定理证毕. 根据此定义,我们可以给出产生随机数的 ...

  4. 产生正态分布(高斯分布)随机数 C语言实现

    正态分布的概率密度函数如下 通常使用表示均值为,方差为 产生正太分布的方法如下: 设为(0,1)上n个相互独立的均匀分布的随机数,由于,. 根据中心极限定理可知,当n趋向于无穷时 的分布近似于正态分布 ...

  5. c语言中什么情况下会出现随机数,C语言中如何产生随机数

    今天看到一段小程序 ,里面用到随机数.才发现在C语言中产生随机数不像matlab中那么简单. C中也有rand()函数,但是rand()函数产生的数不是真正意义上的随机数,是一个伪随机数,是根据一个数 ...

  6. c语言产生随机数_C语言 求的近似值

    点击上方"蓝字"关注我们 愉快的一天,不得不做的三件事: 种田,锄地,整代码!!! [题目] 用循环方法实现. (1)请利用"正多边形逼近"的方法求出π的近似值 ...

  7. c语言中二维数组中产生随机数,C语言中是如何进行随机数生成的[多图]

    C语言中是如何进行随机数生成的.C语言是编程人员经常会到的一款计算机编程语言,有的朋友想知道怎样使用C语言进行随机数生成,那么就快随小编一起来看看这篇C语言中是如何进行随机数生成的吧!其中不仅为大家介 ...

  8. Flutter获取随机数 Dart语言核心基础

    也许你迷茫,但是我想说,在你迷茫的同时,保持本心,过好今天就好. 学习Dart语言,首先我们需要使用到一个语言调试工具 DartPad 在 Dart 中,dart:math 类库提供了 数学常数和函数 ...

  9. c语言产生50以内随机数,C语言产生随机数

    C语言/C++产生随机数:要用到的函数是rand(), srand()和time() 需要说明的是,iostream头文件中就有srand函数的定义,不需要再额外引入stdlib.h;而使用time( ...

  10. 0 1随机数C语言程序,C语言产生随机数的方法

    C语言产生随机数的方法 C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.那么C语言产生随机数的方法都有哪些呢?以下仅供参考! ...

最新文章

  1. android 窗口缩放,Android界面整体缩放
  2. win 7 DHCP获取不到ip的解决办法
  3. 利用WPF建立自己的3d gis软件(非axhost方式)(五)在鼠标点击的位置增加UI
  4. ubuntu16.04 远程控制win10
  5. Angular bootstrap的一个例子
  6. 5G三兄弟NB-IoT排老几?NB-IoT介绍
  7. 蓝桥杯 算法训练(四)结点选择(树形动态规划)
  8. fastdfs笔记_fastdfs基于group的扩容
  9. K3C使用校园网折腾之路
  10. ERP系统-库存子系统-销售/领料出库单
  11. 华科计算机系教学大纲,《批判性思维》课程教学大纲
  12. 洛谷P5322 [BJOI2019]排兵布阵【分组背包】
  13. 小杜滑铲 DFS 最长路径
  14. oracle awr 执行计划,AWR(五)-利用AWR生成SQL执行计划(SQLREPORT)并进行优化 | 信春哥,系统稳,闭眼上线不回滚!...
  15. ECharts 数据可视化插件
  16. 亚马逊QA是什么意思?
  17. FL Studio12中Fruity Blood Overdrive插件使用教程
  18. 5篇关于特征嵌入的研究论文推荐
  19. WPF-10 逻辑树和可视化树
  20. 【Microsoft Azure 的1024种玩法】三十. 使用Azure Data Studio之快速上手连接管理Azure SQL 数据库(一)

热门文章

  1. obs点开始推流显示无法连接服务器,前沿科技资讯:OBS Studio推流连接失败如何办 OBS推流失败的正确解决方法...
  2. Win10系统安装失败?用这种方法一键就解决了
  3. 为什么越来越多的企业选择使用aps生产排产软件?
  4. SQL Server(express)安装教程
  5. git提交代码时遇到代码库有更新以及本地有更新的解决方法
  6. 3dMax建筑demo制作
  7. 艾默生手操器TREXLFPKLWS3S罗斯蒙特电磁流量计8705THE100C1W0E1B3D1Q4Q8/8732EST1A2E1M4D1
  8. 直流可逆调速控制系统matlab,逻辑无环流直流可逆调速系统的Matlab仿真
  9. 《QTreeView表项实现排序的2种方式》:系列教程之九
  10. ps插件套装imagenomic磨皮滤镜安装教程