私は古典的なダイスのシミュレーション問題を抱えています。これは、Rの構文が新しくて実装が苦労しています。以下のように(私はSIMUと呼ばれている)機能が動作します:シミュレーションゲームの機能R
- 0ポイント
- シミュレートしてスタートn個のランダムな各ドローのための3つの6面体サイコロ
- の描画:
- 合計した場合3つのサイコロ> 12 - > +1ポイント
- 3つのサイコロの合計< 6の場合 - > -1点
- そうでない場合(すなわち、合計6〜12):
- 3つのサイコロは同じ番号がある場合 - > +5点そうでない場合 - > 0点 n個のシミュレーションの終了時に得られた点の
- 戻る総位
多くの異なる方法を試したところ、私はかなり近くにいるようです。
simu <- function(n){
k <- 0
for(i in 1:n) {
a <- sample(y,1,replace=TRUE)
b <- sample(y,1,replace=TRUE)
c <- sample(y,1,replace=TRUE)
if ((a + b + c) > 12) {
k <- k+1
} else if ((a + b + c) < 6) {
k <- k-1
} else if ((a == b) & (b == c)) {
k <- k+5
} else k <- 0
}
return(k)
}
問題は、関数内の各 "i"に対して新しいシミュレーション(a、b、c)を繰り返し実行することに失敗しているようです。
それは機能に何か問題があります見ていないあなたは 'SIMU(n)を呼び出すので、もし、あなただけのn'で '、ゼロに'ほとんどの時間をK 'をリセットしている> 1'オッズあなたは 'k < - 0'を得ますか?それ以外の0点は、そうでなければゼロ点を加算するという意味ですか? –
あなたは正しいです - 最後のelse文はk < - k + 0だったはずです。ありがとう。 – Macter