Rolling a Fair 6-Sided Die Until Two Consecutive Rolls Have the Same Value
    2 views (last 30 days)
  
       Show older comments
    
My task is to simulate rolling a fair 6-sided die until two consecutive rolls have the same value and write a function that approximates the expected value EV. I believe I have most of the program figured out until I reach 'same number' in which I get lost. Please help me find out what to put in place of 'same number' to get my program to work. Here is my block of code:
function EV = hw20(NTrials)
%
%
rng('shuffle)
TotalNRolls = 0;
for Trial = 1:NTrials
    die = randi(6);
    TotalNRolls = TotalNRolls + 1;
    while die == 'same number'
            TotalNRolls = TotalNRolls + 1;
    end
end
EV = TotalNRolls/NTrials;
0 Comments
Answers (2)
  Ameer Hamza
      
      
 on 2 Oct 2020
        
      Edited: Ameer Hamza
      
      
 on 2 Oct 2020
  
      Try this code
function EV = hw20(NTrials)
%
%
rng('shuffle')
TotalNRolls = 1;
last_die = inf; % any number other then 1 to 6
while true
    die = randi(6);
    if die == last_die || TotalNRolls==NTrials
        break;
    else
        last_die = die;
    end
    TotalNRolls = TotalNRolls + 1;
end
EV = TotalNRolls/NTrials;
end
3 Comments
  Ameer Hamza
      
      
 on 2 Oct 2020
				Thanks, Steven. Your approach also makes sense for this problem. It is just my guess that NTrials is the maximum number of trials.
  Alan Stevens
      
      
 on 2 Oct 2020
        I think the above will produce a probability, rather than an expected value.  Try
NTrials = 1000;
N = zeros(NTrials,1);
for Trial = 1:NTrials
    TotalNRolls = 1;
    die = randi(6);
    keepgoing = true;
    while keepgoing == true
        oldie = die;
        die = randi(6);
        if die == oldie
            keepgoing = false;
        end
        TotalNRolls = TotalNRolls + 1;
    end
    N(Trial) = TotalNRolls;
end
EV = sum(N)/NTrials;
0 Comments
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!