C Random得隨機數求均值 方差 正態分佈

2022-09-13 13:24:13 字數 3302 閱讀 9729

06年遙感上機複試的程式:

請用vc或c編寫以下程式:正態分佈隨機數的產生。

步驟如下:

(1)利用隨機函式rand()生成(0,1)區間的100個均勻分布隨機數;

(2)計算這100個均勻分布隨機數的均值和方差,計算公式如下:

(3)將這100個均勻分布的隨機數,及其均值和方差儲存到文字檔案「c:\temp\sourcedata.txt」中;

(4)讀入「sourcedata.txt」中的100個均勻分布的隨機數,利用正態分佈隨機數的產生函式生成正態分佈隨機數。正態分佈隨機數生成函式如下:

其中,自變數x即為從「sourcedata.txt」檔案中讀入的100個均勻分布的隨機數。

(5)計算在第(4)步計算出100個正態分佈隨機數y的均值和方差。

(6)將計算出的100個正態分佈隨機數,及其均值和方差儲存到檔案「c:\temp\resultdata.txt」中。

評分標準:

(1)能正確的生成100個(0,1)區間的均勻分布隨機數,並計算其均值和方差:20分。

(3)能將「sourcedata.txt」中的100個均勻分布的隨機數正確的讀入自定義的陣列:20分。

(4)能正確利用正態分佈隨機數的產生函式生成100個正態分佈隨機數,並計算其均值和方差:20分

(6)**符合編碼規範,包括命名規範、注釋清楚、代表排列層次清楚等:20分。

**

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.io;

using

system.collections;

using

system.text.regularexpressions;

namespace

random

double

**e=

sum/

a.length;

return

**e;}//

求隨機數方差方法

static

double

var(

double

v)double

sum =0

;foreach

(double

d in

v)double

var

=sum1

/v.length

-(sum

/v.length)

*(sum

/v.length);

return

var;}//

求正態分佈的隨機數

static

void

fenbu(

double

f)}static

void

main(

string

args)

//呼叫**e方法、var方法求得隨機數均值和方差

double

**enum

=**e(dou);

double

varnum

=var(dou);

//寫入檔案

//將100個隨機數,均值,方差儲存到檔案「d:\c#練習\sourcedata.txt」中

string

datapath =(

@"d:\c#練習\sourcedata.txt");

filestream fs

=new

filestream(datapath, filemode.create);

streamwriter sw

=new

streamwriter(fs);

for(

intj =0

; j

<

dou.length;j++)

sw.write(

"100個隨機數均值和方差分別是和

",**enum,varnum);

sw.close();

//讀取資料檔案「d:\c#練習\sourcedata.txt」

filestream fs1

=new

filestream(datapath, filemode.open);

streamreader sr

=new

streamreader(fs1);

string

temp

=null

;string

str

=null

;while

((temp

=sr.readline())

!=null)//

對陣列進行分割regax

regex re

=new

regex(""

);string

str1

=re.split(str);

double

nums

=new

double

[str1.length-2

];for

(inti=

0;i<

str1.length-2

;i++)//

呼叫正態分佈隨機函式,求均值和方差

fenbu(nums);

double

**eresult

=**e(nums);

double

varresult

=var(nums);

//寫入檔案

//將100個隨機數,均值,方差儲存到檔案「d:\c#練習\resultdata.txt」中

string

resultpath =(

@"d:\c#練習\resultdata.txt");

filestream fs2

=new

filestream(resultpath, filemode.create);

streamwriter sw1

=new

streamwriter(fs2);

for(

intj =0

; j

<

nums.length; j++)

sw1.write(

"100個隨機數均值和方差分別是和

", **eresult, varresult);

sw1.close();

console.readkey();}}

}

js求隨機數

求某個正數範圍內隨機選擇乙個值 值 math.floor math.random 可能值的總數 第乙個可能的值 例如 1.求1 100內的隨機整數 var result math.floor math.random 100 1 2.在乙個陣列中隨機取出一項 var array a b c d e f...

C Random迴圈生成隨機數重複問題解決方案

c random迴圈生成隨機數重複問題解決方案 1.當我們通過random生成隨機數時,習慣的寫法如下 int a new random next 0,100 然後生成乙個資料數沒有任何問題,但是 修改如下 for int i 0 i 1000 i 問題 你會發現生成的隨機數居然完全一樣。腫麼辦呢?...

iOS objective c產生隨機數的方法

objective c 中三種產生隨機數的方法 arc4random 比較精確不需要生成隨即種子 通過arc4random 獲取0到x 1之間的整數的 如下 int value arc4random x 獲取1到x之間的整數的 如下 int value arc4random x 1 ccrandom...