teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

特になし

2019/11/07 01:11

投稿

onmywaytostudy
onmywaytostudy

スコア4

title CHANGED
@@ -1,1 +1,1 @@
1
- Rでベルトランドックス
1
+ Rでのプログミング
body CHANGED
File without changes

2

特になし

2019/11/07 01:10

投稿

onmywaytostudy
onmywaytostudy

スコア4

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  大学の宿題でどうしてもわからない問題があり、初めて質問させて頂きます。
4
4
  問題の全文は以下の通りです。
5
5
 
6
- (2) (ベルトランの投票問題)
6
+ (2)
7
7
  A, B という二人の候補者がいる選挙があり, A の総得票数は m 票, B の総得票数は n 票であった
8
8
  とする. また, この選挙の開票作業は投票箱から投票用紙を 1 枚ずつランダムに取り出して行われ,
9
9
  取り出された用紙が A への票であったら A に 1 票加算され, B への票であったら B に 1 票加算さ
@@ -21,46 +21,4 @@
21
21
 
22
22
  ### 発生している問題・エラーメッセージ
23
23
 
24
- この問題の(i)はかろうじて解けたのですが、(ii)のコードが分かりません
24
+ この問題の(i)はかろうじて解けたのですが、(ii)のコードが分かりません
25
-
26
- ### 該当のソースコード
27
- (i)
28
- mysim1 <- function(m,n){
29
- set.seed(1)
30
- x <- rbinom(m+n,1,m/(m+n))
31
- R <- cumsum(x)
32
- return(R)
33
- }
34
- mysim2 <- function(m,n){
35
- set.seed(1)
36
- y <- rbinom(m+n,1,n/(m+n))
37
- S <- cumsum(y)
38
- return(S)
39
- }
40
-
41
- X <- mysim1(60,40)
42
- Y <- mysim2(60,40)
43
- plot(X, type="l", xlab = "N", ylab = "sum", lwd = 2, ylim = c(0,70), main = "ベルトランの投票問題",col = "red")
44
- par(new=T)
45
- plot(Y, type="l", xlab = "N", ylab = "sum", lwd = 2, ylim = c(0,70), col = "blue")
46
-
47
- (ii)
48
- myfun <- function(){
49
- return(mysim1(60,40) - mysim2(60,40))
50
- }
51
- S <- 0
52
- pn <- matrix(0,100,10000)
53
- mysim <- function(){
54
- for (m in 1:10000){
55
- pn[ ,m] <- myfun()
56
- res <- FALSE
57
- for(n in 1:100){
58
- if(pn[n,m] < 0){
59
- res <- TRUE
60
- }
61
- }
62
- if(res) next
63
- S <- S+1
64
- }
65
- print(S/10000)
66
- }

1

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

2019/11/07 01:10

投稿

onmywaytostudy
onmywaytostudy

スコア4

title CHANGED
File without changes
body CHANGED
@@ -24,5 +24,43 @@
24
24
  この問題の(i)はかろうじて解けたのですが、(ii)のコードが分かりません。
25
25
 
26
26
  ### 該当のソースコード
27
+ (i)
28
+ mysim1 <- function(m,n){
29
+ set.seed(1)
30
+ x <- rbinom(m+n,1,m/(m+n))
31
+ R <- cumsum(x)
32
+ return(R)
33
+ }
34
+ mysim2 <- function(m,n){
35
+ set.seed(1)
36
+ y <- rbinom(m+n,1,n/(m+n))
37
+ S <- cumsum(y)
38
+ return(S)
39
+ }
27
40
 
41
+ X <- mysim1(60,40)
42
+ Y <- mysim2(60,40)
43
+ plot(X, type="l", xlab = "N", ylab = "sum", lwd = 2, ylim = c(0,70), main = "ベルトランの投票問題",col = "red")
44
+ par(new=T)
45
+ plot(Y, type="l", xlab = "N", ylab = "sum", lwd = 2, ylim = c(0,70), col = "blue")
46
+
47
+ (ii)
48
+ myfun <- function(){
49
+ return(mysim1(60,40) - mysim2(60,40))
50
+ }
51
+ S <- 0
52
+ pn <- matrix(0,100,10000)
53
+ mysim <- function(){
54
+ for (m in 1:10000){
55
+ pn[ ,m] <- myfun()
56
+ res <- FALSE
57
+ for(n in 1:100){
58
+ if(pn[n,m] < 0){
59
+ res <- TRUE
60
+ }
61
+ }
28
- Rで記述をお願いします。
62
+ if(res) next
63
+ S <- S+1
64
+ }
65
+ print(S/10000)
66
+ }