我有一個經典的骰子模擬問題,我很努力實現,因爲我是新的R語法。函數(我稱之爲捷聯慣組)的工作原理如下:功能模擬遊戲在R
- 開始與0點
- 模擬n個隨機抽取的三頭六面的骰子
- 對於每個抽獎:
- 如果總和的三個骰子> 12 - > 1點
- 如果三個骰子總和< 6 - > -1點
- 否則(即總和和6之間12):
- 如果三個骰子具有相同數目的 - > 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)。
它看起來並不有什麼不對的功能,你只是重置'k'爲零的大部分時間,因此,如果調用'捷聯慣組(N)'和'N> 1'賠率你會得到'k < - 0'。是不是「否則0點」意味着'否則添加零點? –
你是對的 - 最後的陳述應該是k < - k + 0.謝謝。 – Macter