正態分布函數c語言
在C語言中,e是一個特殊的數字表示方式,它代表自然對數的底數,即e=718281828459045。e這個常數在計算機科學和工程中經常被使用,因為它可以用來表示各種不斷增長的現象,例如利息、人口增長、氣溫變化等等。
在C語言中,如果我們想要使用e的值,可以通過調用math庫中的exp函數來實現。exp函數接受一個參數x,表示以e為底數的x次冪,返回值為數學上的指數函數值,即e^x。可以看出,e的值對於計算機科學和工程有至關重要的意義,是很多演算法和模型的核心。
除了在C語言中使用e來表示自然對數的底數,e還可以被廣泛應用到各個領域。例如,在物理學領域,e可以被用來描述定義電場、磁場、最大電流密度、最大磁通密度等等。在統計學和概率論中,e可以被用來定義指數分布、泊松分布、正態分布等等。可以說,e在數學和自然科學中具有重要的地位。
❷ 如何用c語言生成一個正態分布的樣本
不用加分,我做過,用來產生圖像的高斯雜訊,也就是你要的正態分布.
1.首先你的樣本應該是有一定范圍的吧,我假設它是從1-255
2.根據你的方差和期望,把樣本代進去,算出該樣本出現的概率
3.然後根據概率知識,你做一個累積概率
4.接著你用隨機數產生一個0-1之間的均勻分布
5.看這個數落在哪個累積概率區間
6.按你要的樣本數重復4-5
代碼這里我給個matlab程序你參考一下,很好懂的
function [dest] = GeneGauss(expectation,deviation,width,height)
dest=zeros(width,height);
pz=zeros(256);
tempConst1=1/(sqrt(2*pi)*deviation);
tempConst2=2*deviation*deviation;
for i=1:256
pz(i)=tempConst1*exp(-(i-1-expectation)^2/tempConst2);
end
f=zeros(256);
f(1)=pz(1);
for i=2:256
f(i) = f(i-1)+pz(i);
end
for i=1:width
for j=1:height
n=rand;
for k=1:256
if(n<f(k))
dest(i,j)=k-1;
break;
end
end
end
end
end
❸ 如何在C語言中生成正態分布的隨機數,要源代碼~謝謝
隨機生成一百個1至100的隨機數。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100
int main(int argc, char *argv[])
{
int i;
int a[N];
srand(time(NULL));
for(i=0;i<N;i++)
a[i]=rand()%100+1;
printf("生成的隨機數為:\n");
for(i=0;i<N;i++)
{
printf("%5d",a[i]);
if((i+1)%10==0)
printf("\n");
}
system("PAUSE");
return 0;
}
輸出結果如下:
生成的隨機數為:
41 15 82 1 23 51 16 96 92 17
86 71 87 69 74 5 50 18 42 52
46 34 52 18 40 74 79 35 22 36
65 94 80 91 18 72 61 79 4 11
61 30 95 55 11 19 38 87 78 52
95 30 99 53 99 99 10 79 70 33
91 85 10 99 47 58 93 41 19 71
56 60 10 24 73 87 18 38 13 73
57 22 91 4 37 60 67 58 85 48
46 7 57 100 73 96 60 44 24 23
請按任意鍵繼續. . .