Math.h 正态分布 C语言,C++与正态分布(示例代码)
正态分布(Normal distribution)又名高斯分布(Gaussiandistribution)。
若随机变量X服从一个数学期望为μ、方差为σ^2的高斯分布。记为N(μ。σ^2)。
其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。
我们通常所说的标准正态分布是μ
= 0,σ = 1的正态分布。
从上图能够看出,当相差1个方差(σ),满足要求的面积有68.27%.
当相差2个方差(σ)时,满足要求的面积有95.45.
当相差3个方差(σ)时,满足要求的面积有99.73%.
满足标准正态分的曲线,能够查表来求得正态分布的幅度.(见文后所附表格)
方差(Variance),是各个数据分别与其和的平均数之差的平方的和的平均数。用字母D表示。在概率论和数理统计中,方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。
标准差(StandardDeviation)。是离均差平方和平均后的方根,用σ表示。标准差是方差的算术平方根。
标准差能反映一个数据集的离散程度。
測试代码:
// NormalDistribution.cpp : Defines the entry point for the console application.
//
#include
#include
#include
#include
#include
#define _USE_MATH_DEFINES
#include
using namespace std;
// 高斯分布随机数系列,默认期望值为0,方差为1
double GaussRand(double dExpect = 0, double dVariance = 1);
double GaussRand(double dExpect, double dVariance)
{
static double V1, V2, S;
static int phase = 0;
double X;
if ( phase == 0 )
{
do
{
double U1 = (double)rand() / RAND_MAX;
double U2 = (double)rand() / RAND_MAX;
V1 = 2 * U1 - 1;
V2 = 2 * U2 - 1;
S = V1 * V1 + V2 * V2;
} while(S >= 1 || S == 0);
X = V1 * sqrt(-2 * log(S) / S);
}
else
{
X = V2 * sqrt(-2 * log(S) / S);
}
phase = 1 - phase;
return (X*dVariance + dExpect);
}
int _tmain(int argc, _TCHAR* argv[])
{
const int DATA_CNT = 100000;
double dArrData[DATA_CNT] = {0};
double dSum = 0;
// 对全部数赋随机数,默认期望值为0,方差为1
srand(GetTickCount());
for (int nIdx = 0; nIdx < DATA_CNT; nIdx++)
{
// 防止计算方差时数值过大
dArrData[nIdx] = GaussRand();
dSum += dArrData[nIdx];
}
// 求平均数
double dAverageData = dSum / DATA_CNT;
// 计算全部的数的方差(各个数据分别与其和的平均数之差的平方的和的平均数)
double dVariance = 0.0;
for (int nIdx = 0; nIdx < DATA_CNT; nIdx++)
{
double dDeviate = dArrData[nIdx] - dAverageData;
dVariance += pow(dDeviate, 2);
}
dVariance /= DATA_CNT;
// 计算标准差(方差的算术平方根,反映一组数据的离散程序)
double dStandardDeviation = sqrt(dVariance);
// 计算0.5个正负标准差之间包括的数字个数
int nDataCnt = 0;
for (int nIdx = 0; nIdx < DATA_CNT; nIdx++)
{
double dDeviate = dArrData[nIdx] - dAverageData;
if (abs(dDeviate) <= 0.5*dStandardDeviation)
{
nDataCnt++;
}
}
cout<
// 计算1个正负标准差之间包括的数字个数
nDataCnt = 0;
for (int nIdx = 0; nIdx < DATA_CNT; nIdx++)
{
double dDeviate = dArrData[nIdx] - dAverageData;
if (abs(dDeviate) <= dStandardDeviation)
{
nDataCnt++;
}
}
cout<
// 计算2个正负标准差之间包括的数字个数
nDataCnt = 0;
for (int nIdx = 0; nIdx < DATA_CNT; nIdx++)
{
double dDeviate = dArrData[nIdx] - dAverageData;
if (abs(dDeviate) <= 2*dStandardDeviation)
{
nDataCnt++;
}
}
cout<
// 计算3个正负标准差之间包括的数字个数
nDataCnt = 0;
for (int nIdx = 0; nIdx < DATA_CNT; nIdx++)
{
double dDeviate = dArrData[nIdx] - dAverageData;
if (abs(dDeviate) <= 3*dStandardDeviation)
{
nDataCnt++;
}
}
cout<
return 0;
}
(附)标准正态分布表
φ( -x)
= 1–φ(x)
x
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0
0.500 0
0.504 0
0.508 0
0.512 0
0.516 0
0.519 9
0.523 9
0.527 9
0.531 9
0.535 9
0.1
0.539 8
0.543 8
0.547 8
0.551 7
0.555 7
0.559 6
0.563 6
0.567 5
0.571 4
0.575 3
0.2
0.579 3
0.583 2
0.587 1
0.591 0
0.594 8
0.598 7
0.602 6
0.606 4
0.610 3
0.614 1
0.3
0.617 9
0.621 7
0.625 5
0.629 3
0.633 1
0.636 8
0.640 4
0.644 3
0.648 0
0.651 7
0.4
0.655 4
0.659 1
0.662 8
0.666 4
0.670 0
0.673 6
0.677 2
0.680 8
0.684 4
0.687 9
0.5
0.691 5
0.695 0
0.698 5
0.701 9
0.705 4
0.708 8
0.712 3
0.715 7
0.719 0
0.722 4
0.6
0.725 7
0.729 1
0.732 4
0.735 7
0.738 9
0.742 2
0.745 4
0.748 6
0.751 7
0.754 9
0.7
0.758 0
0.761 1
0.764 2
0.767 3
0.770 3
0.773 4
0.776 4
0.779 4
0.782 3
0.785 2
0.8
0.788 1
0.791 0
0.793 9
0.796 7
0.799 5
0.802 3
0.805 1
0.807 8
0.810 6
0.813 3
0.9
0.815 9
0.818 6
0.821 2
0.823 8
0.826 4
0.828 9
0.835 5
0.834 0
0.836 5
0.838 9
1
0.841 3
0.843 8
0.846 1
0.848 5
0.850 8
0.853 1
0.855 4
0.857 7
0.859 9
0.862 1
1.1
0.864 3
0.866 5
0.868 6
0.870 8
0.872 9
0.874 9
0.877 0
0.879 0
0.881 0
0.883 0
1.2
0.884 9
0.886 9
0.888 8
0.890 7
0.892 5
0.894 4
0.896 2
0.898 0
0.899 7
0.901 5
1.3
0.903 2
0.904 9
0.906 6
0.908 2
0.909 9
0.911 5
0.913 1
0.914 7
0.916 2
0.917 7
1.4
0.919 2
0.920 7
0.922 2
0.923 6
0.925 1
0.926 5
0.927 9
0.929 2
0.930 6
0.931 9
1.5
0.933 2
0.934 5
0.935 7
0.937 0
0.938 2
0.939 4
0.940 6
0.941 8
0.943 0
0.944 1
1.6
0.945 2
0.946 3
0.947 4
0.948 4
0.949 5
0.950 5
0.951 5
0.952 5
0.953 5
0.953 5
1.7
0.955 4
0.956 4
0.957 3
0.958 2
0.959 1
0.959 9
0.960 8
0.961 6
0.962 5
0.963 3
1.8
0.964 1
0.964 8
0.965 6
0.966 4
0.967 2
0.967 8
0.968 6
0.969 3
0.970 0
0.970 6
1.9
0.971 3
0.971 9
0.972 6
0.973 2
0.973 8
0.974 4
0.975 0
0.975 6
0.976 2
0.976 7
2
0.977 2
0.977 8
0.978 3
0.978 8
0.979 3
0.979 8
0.980 3
0.980 8
0.981 2
0.981 7
2.1
0.982 1
0.982 6
0.983 0
0.983 4
0.983 8
0.984 2
0.984 6
0.985 0
0.985 4
0.985 7
2.2
0.986 1
0.986 4
0.986 8
0.987 1
0.987 4
0.987 8
0.988 1
0.988 4
0.988 7
0.989 0
2.3
0.989 3
0.989 6
0.989 8
0.990 1
0.990 4
0.990 6
0.990 9
0.991 1
0.991 3
0.991 6
2.4
0.991 8
0.992 0
0.992 2
0.992 5
0.992 7
0.992 9
0.993 1
0.993 2
0.993 4
0.993 6
2.5
0.993 8
0.994 0
0.994 1
0.994 3
0.994 5
0.994 6
0.994 8
0.994 9
0.995 1
0.995 2
2.6
0.995 3
0.995 5
0.995 6
0.995 7
0.995 9
0.996 0
0.996 1
0.996 2
0.996 3
0.996 4
2.7
0.996 5
0.996 6
0.996 7
0.996 8
0.996 9
0.997 0
0.997 1
0.997 2
0.997 3
0.997 4
2.8
0.997 4
0.997 5
0.997 6
0.997 7
0.997 7
0.997 8
0.997 9
0.997 9
0.998 0
0.998 1
2.9
0.998 1
0.998 2
0.998 2
0.998 3
0.998 4
0.998 4
0.998 5
0.998 5
0.998 6
0.998 6
x
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
3
0.998 7
0.999 0
0.999 3
0.999 5
0.999 7
0.999 8
0.999 8
0.999 9
0.999 9
1.000 0
(附)正态分布概率表
Φ(u)=
Math.h 正态分布 C语言,C++与正态分布(示例代码)相关推荐
- c语言里取余数的运算的代码,Math——取模运算及取余运算(示例代码)
取模运算及取余运算 取余运算(Complementation)即我们小学时学的数学算术概念,而取模运算(Modulus Operation)常用于程序设计中 公式 a%b = a - (a/b * b ...
- c语言作业统计字符,C语言统计字符数(示例代码)
输出样例 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ...
- c语言有效的预处理命令,9、C语言之预处理命令(示例代码)
预处理命令 基本概念:ANSI C标准规定可以在C源程序中加入一些"预处理命令",以改进程序设计环境,提高编程效率. 这些预处理命令是由ANSI C同一规定的,但是它们不是C语言本 ...
- C语言mysql_ping实例代码_c语言操作mysql数据库(示例代码)
c语言操作Mysql数据库,主要就是为了实现对数据库的增.删.改.查等操作,操作之前,得先连接数据库啊,而连接数据库主要有两种方法.一.使用mysql本身提供的API,在mysql的安装目录中可可以看 ...
- 表格 树形结构 HTML 语言 CSS,HTML介绍(示例代码)
一.什么是HTML html(hypertext makeup language),中文名为超文本标记语言,他是一门能被浏览器解析成网页的标签语言,当我们使用浏览器访问网页时,那边就有一个服务端给你发 ...
- c语言线程池源代码下载,C语言实现线程池(示例代码)
/** * 线程池 * @author jimmy * @date 2016-5-14*/#include#include#include#include#include"pd_log.h& ...
- c语言apply函数,R语言apply()函数用法(示例代码)
在R语言的帮助文档里,apply函数的功能是: Retruns a vector or array or list of values obtained by applying a function ...
- 心形线c语言原理,C语言打印心形(示例代码)
#include int main() { for (float y = 1.5f; y > -1.5f; y -= 0.1f) { for (float x = -1.5f; x < 1 ...
- c语言实现pwd,20155222 c语言实现pwd命令(示例代码)
20155222 c语言实现linux的pwd命令 1.学习pwd命令在Linux层次结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录.然 ...
- r语言 read_html,R语言外部数据读取(示例代码)
0 引言 使用R语言.Python等进行数据处理的第一步就是要导入数据(也可以使用UCI数据集),下文主要根据R语言的帮助文档来介绍外部文件数据的导入方法和注意事项. 1 格式read.table ...
最新文章
- VueJs开发笔记—IDE选择和优化、框架特性、数据调用、路由选项及使用
- C++ memset
- wsld2java_脱离spring集成cxf(基于nutz框架)
- Java程序中的死锁
- linux启动tomcat不停的触发gc,tomcat的rmi触发的full gc的时间过长的优化
- 个人博客前端模板_博客设计——概述
- 1191: 冰法斗神龙 暴力枚举
- python下sqlite增删查改方法(转)
- Leetcode Math刷题笔记
- 视觉SLAM笔记(37) 求解 PnP
- python21天打卡Day12--for循环,列表推导式-构建列表
- php网站怎么做自适应,什么是自适应布局?自适应布局如何实现?
- Koding VM 配置nginx 小记
- adb java_ADB - javalzy - 博客园
- file Java 读取_Java读取文件方法汇总
- 剑指offer——链表题目集合(Python)
- 【量化】验证《股市操盘宝典》对周期论
- Siggraph2019 RealTimeRender“观影推荐”
- selenium自动登录知网下载论文
- java mail 签名_java mail实现Email的发送,完整代码
热门文章
- 编译安装apache
- 阿里的活动宣传做得好 一百分!
- 搭建DM两节点mpp集群
- 7-4 求分数序列前N项和
- upc2021个人训练赛第23场M: 紫罗兰(dsu)
- ubuntu20.04下opencv4.4编译、给图片加中文标注及tensorflow的问题记录、ubuntu下使用cv::text::OCRTesseract模块字符识别
- 2021年10年后端开发程序员最新《C/C++Linux 服务器开发》学习路线总结,建议收藏
- 既然选择了远方,便只顾风雨兼程
- 计算机维修培训教材,计算机芯片级维中心(芯片级维修培训教材)b.doc
- 电脑蓝屏记录(RESOURCE_NOT_OWNED)