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分。
**
usingsystem;
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...