voip
風的方向
厚德致遠,博學敦行!
C++博客
首頁
新隨筆
新文章
聯系
聚合
管理
posts - 52,comments - 21,trackbacks - 0
<
2010年10月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
哥哥回來了~~
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
C++學習(3)
Questions(15)
生活瑣事(4)
算法設計與分析(17)
學習到的一些小知識(3)
隨筆檔案
2016年12月 (1)
2010年11月 (1)
2010年10月 (8)
2010年9月 (39)
2010年8月 (3)
牛人
ACM
matrix67
RyanWang
第四維
過客空間
劉品
音頻處理
牽著老婆。。
搜索
最新評論
1.?re: min和max頭文件
這位說的是對的~我用algorithm就是不行
--maxmin
2.?re: min和max頭文件[未登錄]
algorithm是stl的東西,要用std::max
--123
3.?re: 過河卒[未登錄]
@cs
什么都百度要腦袋有嘛用~兄弟~
--jince
4.?re: 過河卒
不能過
--cs
5.?re: min和max頭文件
是應該在stdlib里面
--mushroom
閱讀排行榜
1.?min和max頭文件(27638)
2.? 最少硬幣問題 (3765)
3.?均分紙牌(2933)
4.?矩陣相乘(2535)
5.?整數劃分(2451)
評論排行榜
1.?min和max頭文件(4)
2.?整數劃分(2)
3.?免費餡餅(2)
4.?最大和子段(2)
5.?隨機數(2)
隨機數應用
學以致用!!!
隨機數可以用來計算概率,面積等?。?br> 一、隨機數,模擬拋硬幣正面時間頻率圖。
代碼如下:
#include
<
iostream
>
#include
<
time.h
>
using
namespace
std;
const
unsigned
long
maxshort
=
65536L
;
const
unsigned
long
multiplier
=
1194211693L
;
const
unsigned
long
adder
=
12345L
;
class
RandomNumber
{
private
:
unsigned
long
randSeed;
//
隨機種子
public
:
RandomNumber(unsigned
long
s
=
0
);
//
構造函數,為randSeed置數
unsigned
short
Random(unsigned
long
n);
//
獲取0~n的一個隨機數
double
fRandom(
void
);
//
獲取一個小數
}
;
RandomNumber::RandomNumber(unsigned
long
s)
{
if
(s
==
0
)
randSeed
=
time(
0
);
//
這里獲取直接用time函數獲取了一個時間值當做種子了,沒有再用srand函數構造種子了!網上查了下time()函數為從1970年1月1日0時0分0秒到此時的秒數?。?!
else
randSeed
=
s;
}
unsigned
short
RandomNumber::Random(unsigned
long
n)
{
//
printf("randSeed:%lu \nmultiplier:%lu \nrandSeed*multiplier:%lu\n",randSeed,multiplier,randSeed*multiplier);
randSeed
=
multiplier
*
randSeed
+
adder;
//
這里存在一個越界問題,但是還是會從新獲得一個randSeed
//
printf("(randSeed>>16):%lu\n",randSeed>>16);
return
(unsigned
short
)((randSeed
>>
16
)
%
n);
//
右移16為再與n取余,從而獲得一個0~n的隨機數,其實我還不明白,為啥還要右移呢?難道是為了隨機性?
}
double
RandomNumber::fRandom(
void
)
{
return
Random(maxshort)
/
double
(maxshort);
}
int
TossCoins(
int
numberCoins)
{
static
RandomNumber coinToss;
//
注意了這里定義了一個靜態變量,在函數反復調用中coinToss的屬性值不變,從構造函數的角度來理解,在函數反復調用過程中,該對象是不會重新去構造的(不會重復調用構造函數的)!
int
i,tosses
=
0
;
for
(i
=
0
;i
<
numberCoins;i
++
)
//
這里調用Random函數!!
{
tosses
+=
coinToss.Random(
2
);
//
返回0或1,1表示正面,0表示反面,累計正面朝上的次數
}
return
tosses;
//
返回正面朝上的次數
}
void
main()
{
const
int
NCOINS
=
10
;
//
定義了常量,我從一些牛人哪里看到,我們應該把靜態變量看成只讀。。。
const
long
NTOSSES
=
50000L
;
long
i,heads[NCOINS
+
1
];
//
h[i]代表NTOSSES次拋NCOINS次拋硬幣中i次正面次數,貌似有些拗口,按這個實例來說,應該是做50000次拋10次硬幣,然后統計10次中出現0次正面朝上次數,1次正面朝上次數,。。10次正面朝上次數
int
j,position;
for
(j
=
0
;j
<
NCOINS
+
1
;j
++
)
heads[j]
=
0
;
for
(i
=
0
;i
<
NTOSSES;i
++
)
//
累計
heads[TossCoins(NCOINS)]
++
;
cout
<<
"
head結果:
"
;
for
(i
=
0
;i
<=
NCOINS;i
++
)
//
輸出h結果
{
cout
<<
heads[i]
<<
"
"
;
}
cout
<<
endl;
for
(i
=
0
;i
<=
NCOINS;i
++
)
//
模擬拋硬幣正面事件平率圖
{
position
=
int
(
float
(heads[i])
/
NTOSSES
*
100
);
//
這里有強制類型轉換,其實這里計算了概率,通過強制類型轉換成整數!!!
cout
<<
i
<<
"
"
;
for
(j
=
0
;j
<
position
-
1
;j
++
)
//
輸出空格
cout
<<
"
"
;
cout
<<
"
*
"
<<
endl;
}
}
運行結果如下:
二、隨機數,計算∏?;舅枷胍彩沁\用了概率事件!設有一個半徑為r的圓及其外切四邊形,向該圖形投擲N個點。設落入圓內的點數為K,由于投入的點在正方形上分布均勻,所以落入圓中的概率為∏*R^2/4/R^2,從投點的角度考慮,該概率為K/N,當N足夠大時,我們可以近似的認為二者相等。從而∏=4*K/N。
代碼如下:
double
Darts(
int
n)
{
static
RandomNumber dart;
int
k
=
0
;
for
(
int
i
=
1
;i
<=
n;i
++
)
{
double
x
=
dart.fRandom();
double
y
=
dart.fRandom();
if
((x
*
x
+
y
*
y)
<=
1
)
k
++
;
}
return
4
*
k
/
double
(n);
}
當n=500000000時,運行結果如下:
printf輸出:
http://hi.baidu.com/jiaju111/blog/item/dcd7fd8ba9a7fa1ac9fc7ae2.html
C語言時間日期函數說明:
http://www.cnblogs.com/neonlight/archive/2008/08/22/1273942.html
posted on 2010-09-13 15:51
jince
閱讀(640)
評論(0)
編輯
收藏
引用
所屬分類:
算法設計與分析
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
集合劃分
電路布線
隨機數應用
0-1背包問題
最大m子段和
最大和矩陣
隨機數
二分搜索
漢諾塔
循環賽
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Copyright ©2025 jince Powered By
博客園
模板提供:
滬江博客
哈哈哈哈哈哈
久久天天躁狠狠躁夜夜不卡
|
久久久久久久99精品免费观看
|
亚洲国产成人久久笫一页
|
嫩草影院久久国产精品
|
色偷偷88欧美精品久久久
|
久久99热这里只有精品66
|
国内精品人妻无码久久久影院
|
精品无码久久久久久国产
|
欧美久久天天综合香蕉伊
|
久久婷婷国产综合精品
|
久久久久亚洲精品男人的天堂
|
亚洲色婷婷综合久久
|
一本一道久久精品综合
|
亚洲AV日韩精品久久久久久久
|
9999国产精品欧美久久久久久
|
熟妇人妻久久中文字幕
|
91精品国产91热久久久久福利
|
99久久精品免费看国产一区二区三区
|
91麻豆国产精品91久久久
|
久久―日本道色综合久久
|
7777精品伊人久久久大香线蕉
|
91久久九九无码成人网站
|
人妻少妇久久中文字幕
|
久久无码精品一区二区三区
|
久久精品国产亚洲麻豆
|
97精品伊人久久大香线蕉
|
国产精品成人无码久久久久久
|
色欲久久久天天天综合网精品
|
精品久久久一二三区
|
久久这里有精品视频
|
国产亚洲精午夜久久久久久
|
久久国产精品久久精品国产
|
亚洲AV无码久久精品色欲
|
亚洲伊人久久成综合人影院
|
久久夜色精品国产
|
欧美成a人片免费看久久
|
国内精品欧美久久精品
|
99久久99久久精品国产片果冻
|
丁香五月综合久久激情
|
青青草国产精品久久久久
|
91久久九九无码成人网站
|