質問編集履歴

3

特になし

2019/11/07 01:11

投稿

onmywaytostudy
onmywaytostudy

スコア4

test CHANGED
@@ -1 +1 @@
1
- Rでベルトランのパラドックス
1
+ Rでのプログ
test CHANGED
File without changes

2

特になし

2019/11/07 01:10

投稿

onmywaytostudy
onmywaytostudy

スコア4

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- (2) (ベルトランの投票問題)
11
+ (2)
12
12
 
13
13
  A, B という二人の候補者がいる選挙があり, A の総得票数は m 票, B の総得票数は n 票であった
14
14
 
@@ -44,88 +44,4 @@
44
44
 
45
45
 
46
46
 
47
- この問題の(i)はかろうじて解けたのですが、(ii)のコードが分かりません
47
+ この問題の(i)はかろうじて解けたのですが、(ii)のコードが分かりません
48
-
49
-
50
-
51
- ### 該当のソースコード
52
-
53
- (i)
54
-
55
- mysim1 <- function(m,n){
56
-
57
- set.seed(1)
58
-
59
- x <- rbinom(m+n,1,m/(m+n))
60
-
61
- R <- cumsum(x)
62
-
63
- return(R)
64
-
65
- }
66
-
67
- mysim2 <- function(m,n){
68
-
69
- set.seed(1)
70
-
71
- y <- rbinom(m+n,1,n/(m+n))
72
-
73
- S <- cumsum(y)
74
-
75
- return(S)
76
-
77
- }
78
-
79
-
80
-
81
- X <- mysim1(60,40)
82
-
83
- Y <- mysim2(60,40)
84
-
85
- plot(X, type="l", xlab = "N", ylab = "sum", lwd = 2, ylim = c(0,70), main = "ベルトランの投票問題",col = "red")
86
-
87
- par(new=T)
88
-
89
- plot(Y, type="l", xlab = "N", ylab = "sum", lwd = 2, ylim = c(0,70), col = "blue")
90
-
91
-
92
-
93
- (ii)
94
-
95
- myfun <- function(){
96
-
97
- return(mysim1(60,40) - mysim2(60,40))
98
-
99
- }
100
-
101
- S <- 0
102
-
103
- pn <- matrix(0,100,10000)
104
-
105
- mysim <- function(){
106
-
107
- for (m in 1:10000){
108
-
109
- pn[ ,m] <- myfun()
110
-
111
- res <- FALSE
112
-
113
- for(n in 1:100){
114
-
115
- if(pn[n,m] < 0){
116
-
117
- res <- TRUE
118
-
119
- }
120
-
121
- }
122
-
123
- if(res) next
124
-
125
- S <- S+1
126
-
127
- }
128
-
129
- print(S/10000)
130
-
131
- }

1

(ii)の自分で書いたコードを追加しました。どこが間違っているか指摘お願いします。

2019/11/07 01:10

投稿

onmywaytostudy
onmywaytostudy

スコア4

test CHANGED
File without changes
test CHANGED
@@ -50,6 +50,82 @@
50
50
 
51
51
  ### 該当のソースコード
52
52
 
53
+ (i)
54
+
55
+ mysim1 <- function(m,n){
56
+
57
+ set.seed(1)
58
+
59
+ x <- rbinom(m+n,1,m/(m+n))
60
+
61
+ R <- cumsum(x)
62
+
63
+ return(R)
64
+
65
+ }
66
+
67
+ mysim2 <- function(m,n){
68
+
69
+ set.seed(1)
70
+
71
+ y <- rbinom(m+n,1,n/(m+n))
72
+
73
+ S <- cumsum(y)
74
+
75
+ return(S)
76
+
77
+ }
53
78
 
54
79
 
80
+
81
+ X <- mysim1(60,40)
82
+
83
+ Y <- mysim2(60,40)
84
+
85
+ plot(X, type="l", xlab = "N", ylab = "sum", lwd = 2, ylim = c(0,70), main = "ベルトランの投票問題",col = "red")
86
+
87
+ par(new=T)
88
+
89
+ plot(Y, type="l", xlab = "N", ylab = "sum", lwd = 2, ylim = c(0,70), col = "blue")
90
+
91
+
92
+
93
+ (ii)
94
+
95
+ myfun <- function(){
96
+
97
+ return(mysim1(60,40) - mysim2(60,40))
98
+
99
+ }
100
+
101
+ S <- 0
102
+
103
+ pn <- matrix(0,100,10000)
104
+
105
+ mysim <- function(){
106
+
107
+ for (m in 1:10000){
108
+
109
+ pn[ ,m] <- myfun()
110
+
111
+ res <- FALSE
112
+
113
+ for(n in 1:100){
114
+
115
+ if(pn[n,m] < 0){
116
+
117
+ res <- TRUE
118
+
119
+ }
120
+
121
+ }
122
+
55
- Rで記述をお願いします。
123
+ if(res) next
124
+
125
+ S <- S+1
126
+
127
+ }
128
+
129
+ print(S/10000)
130
+
131
+ }