2017-03-10 1 views
0

Mein Code ist für eine Simulation von 100 Coinflips, wo, wenn Sie Ihren 10-Dollar-Einsatz verlieren, Sie Bankrott sind (dh Nettogewinn/-verlust erreicht -10 innerhalb von 100 Flips, ist jeder Flip eine 1-Dollar-Wette). Ich möchte 500 Mal laufen und dann die Gewinn/Verlust-Ergebnisse in einem Vektor speichern. Ich habe meinen Code hauptsächlich für einen Flip, obwohl ich denke, dass es nicht der effizienteste Weg ist - wäre es am besten, eine for-Schleife hinzuzufügen oder anzuwenden?For-Schleife oder anwenden, um Simulationsergebnisse in einem Vektor zu speichern?

n=100 
total.profit=c() 
game.cashflow = cumsum(2*rbinom(n,1,prob=0.5)-1) 
    if(length(game.cashflow[game.cashflow==-10])>0){ 
    game.profit=-10}else{ 
     game.profit=game.cashflow[1000]} 

Ich möchte die Ergebnisse in einem total.profit Vektor speichern.

+0

Werfen Sie einen Blick auf 'replicate()'. – jogo

Antwort

2

So ähnlich?

flipit <- function(n) { 
    res <- sample(c(-1,1),n,replace=TRUE) 
    ifelse(any(cumsum(res)<=-10),"bust",sum(res)) 
} 

replicate(500,flipit(100)) 
Verwandte Themen