Multiple Dice Rolls Help
    16 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
So basically, I have to write a function that simulates the rolling of a
given number of six sided dice a given number of times. The function should
take
two input arguments, the number of dice (NumDice) that will be rolled in each
experiment and the total number (NumRolls) of times that the dice will be
rolled. The output of the function will be a vector SumDice of length NumRolls
that contains the sum of the dice values in each experiment. I'll have to make
a histogram afterwards (which I havent done yet)
Here's what I've got so far, not sure how to make it a sum of dice:
    % function SumDice=RollDice(NumDice,NumRolls)
distribution=zeros(6,1);
for roll=1:NumRolls
    diceValues = randi(6,[NumDice 1]);
    for die = 1 : NumDice
    distribution(diceValues(die)) = distribution(diceValues(die)) +1;
  end
end
0 Commenti
Risposta accettata
  Walter Roberson
      
      
 il 21 Nov 2012
        Sum of dice is just sum(diceValues). And you will not need the "for die" loop as you only get a single sum.
(By the way, the entire function can be done as a single expression, including the histogram.)
4 Commenti
Più risposte (1)
  Harshit
      
 il 21 Nov 2012
        Here is what I feel will work fine
% function SumDice=RollDice(NumDice,NumRolls)
distribution=zeros(NumDice*6,1);
for roll=1:NumRolls
  diceValues = randi(6,[NumDice 1]);
  totaldiceValue = sum(diceValues);
    distribution(totaldiceValue) = distribution(totaldiceValue) +1;
  end
end
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



