Re: [問題] 條件機率(終極版)
看板puzzle (益智遊戲 - 數獨,拼圖,推理,西洋棋)作者stimim (qqaa)時間16年前 (2009/11/24 00:18)推噓12(12推 0噓 9→)留言21則, 3人參與討論串12/23 (看更多)
1 #include<iostream>
2 #include<cstdio>
3 #include<cstdlib>
4 #include<ctime>
5
6 using namespace std;
7
8 int o[2] = {0} ;
9
10 int Rand()
11 {
12 int x = rand() % 2;
13 o[x] ++ ;
14 return x ;
15 }
16
17 int main()
18 {
19 srand( time(NULL) ) ;
20
21 int n , B ;
22
23 cout << "How many times you want to play?" << endl ;
24 cin >> n ; //模擬 n 次
25 cout << "How many balls ?" << endl ;
26 cin >> B ; //袋子裡有B顆球
27
28 int b = 0 , w = 0 ;
29 for( int i = 0 ; i < n ; )
30 {
31 int color[10] ;
32
33 for( int k = 0 ; k < B ; k ++ )
34 color[k] = Rand() ; //決定球的顏色
35 int c = 0 ;
36
37 for( int k = 0 ; k < B ; k ++ )
38 if( color[k] )
39 c ++ ; //計算袋子裡有幾顆白球
40
41 if( c >= B - 1 ) //如果袋子裡至少有B-1顆球
42 {
43 if( c == B ) //如果剩下的那一顆也是白色
44 w ++ ;
45 else //不然就是黑色
46 b ++ ;
47 i ++ ;
48 }
49 }
50
51 cout << "0: " << o[0] << "\t" << 100.*o[0]/(o[0]+o[1]) << "%" << endl ;
52 cout << "1: " << o[1] << "\t" << 100.*o[1]/(o[0]+o[1]) << "%" << endl ;
53 puts( "------------------------------------" ) ;
54 cout << "Result:" << endl ;
55 cout << "W: " << w << "\t" << 100.*w/(w+b) << "%" << endl ;
56 cout << "B: " << b << "\t" << 100.*b/(w+b) << "%" << endl ;
57
58 return 0;
59 }
執行結果:(已翻譯和補充說明)
模擬幾次?
1000000
袋子裡有幾顆球?
2
------------------------------------
模擬結果:
在這次的模擬中,亂數選到0的機率是:
1333605次 50.0043%
在這次的模擬中,亂數選到1的機率是:
1333375次 49.9957%
------------------------------------
你拿到白球333375次 機率 33.3375%
你拿到黑球666625次 機率 66.6625%
模擬幾次?
1000000
袋子裡有幾顆球?
4
------------------------------------
模擬結果:
在這次的模擬中,亂數選到0的機率是:
6394380次 49.9949%
在這次的模擬中,亂數選到1的機率是:
6395688次 50.0051%
------------------------------------
你拿到白球199272次 機率 19.9272%
你拿到黑球800728次 機率 80.0728%
解釋一下:
這裡的概念是,如果袋子裡恰好有B-1個白球,那你就是會選到黑球
如果袋子裡全部是白球,那你選到白球(廢話)
袋子裡白球少於B-1個的情況不在樣本空間中。
在模擬時,亂數選到1代表白球,選到0代表黑球。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.164.156
推
11/24 00:19, , 1F
11/24 00:19, 1F
→
11/24 00:20, , 2F
11/24 00:20, 2F
推
11/24 00:20, , 3F
11/24 00:20, 3F
※ 編輯: stimim 來自: 61.228.164.156 (11/24 00:27)
推
11/24 00:29, , 4F
11/24 00:29, 4F
推
11/24 00:31, , 5F
11/24 00:31, 5F
→
11/24 00:33, , 6F
11/24 00:33, 6F
→
11/24 00:34, , 7F
11/24 00:34, 7F
推
11/24 00:34, , 8F
11/24 00:34, 8F
推
11/24 00:35, , 9F
11/24 00:35, 9F
推
11/24 00:36, , 10F
11/24 00:36, 10F
推
11/24 00:37, , 11F
11/24 00:37, 11F
1/2的想法:
不管袋子裡是什麼狀況,反正我些選一顆,
再把剩下的到出來,如果都是白色的,那才是我的樣本空間,
再去檢查手裡的球是什麼顏色。
2/3的想法:
樣本空間就是袋子裡最多只有一顆黑球的情況,
如果袋子裡有黑球,那我就會選到黑球。否則才是白球。
就我個人認為1/2的想法比較符合題意。
※ 編輯: stimim 來自: 61.228.164.156 (11/24 00:44)
推
11/24 00:45, , 12F
11/24 00:45, 12F
→
11/24 00:45, , 13F
11/24 00:45, 13F
→
11/24 00:47, , 14F
11/24 00:47, 14F
推
11/24 01:02, , 15F
11/24 01:02, 15F
→
11/24 01:03, , 16F
11/24 01:03, 16F
推
11/24 01:32, , 17F
11/24 01:32, 17F
→
11/24 01:33, , 18F
11/24 01:33, 18F
→
11/24 01:33, , 19F
11/24 01:33, 19F
→
11/24 01:34, , 20F
11/24 01:34, 20F
情況不一樣是當然的,因為這個程式是用另一種角度去解釋題目,
但是如我所補充的,2/3的想法在某種程度上曲解了題意,
在我看來這種解讀方式是有問題的。
推
11/24 05:46, , 21F
11/24 05:46, 21F
※ 編輯: stimim 來自: 140.112.7.59 (11/24 10:59)
討論串 (同標題文章)
puzzle 近期熱門文章
5
21
PTT遊戲區 即時熱門文章
38
52