私の問題:
出生時の性比 (男性対女性) が 1.1 である場合、人々は次の戦略を採用します: 息子が 1 人になるまで子供を産み、その後、娘が 12 人いない限り (その場合も停止します)、出産をやめます。人口の平均的な性比はどれくらいになるでしょうか? (シミュレーションで計算。10,000家族を無作為に選んだとします。)
私のコード
pm=0.5238095 # Probability of Male
pw=0.4761905 # Female
w=0 # initial number of Female
n=1 # loop
p=0 # count of number
for(i in 1:n){
s=rbinom(1,1,0.4761905)
if(s==1){
w=w+1
}
p=p+1
while(w<=12){ ####1. How to count the number of female? ###
while(s==1){
s=rbinom(1,1,0.4761905)
if(s==1){
w=w+1
}
p=p+1
}
}
f[i]=p
}
w/p
私の質問
女性の数を数える方法は?ループを使用して女性の数を数えています $(if(s==1){ w=w+1 })。$It は効率が悪いようです。MAYBE で true または false をカウントする方が効率的だと思います。
コードをより簡潔に書くには?