# Why isn't my figure consistent? It keeps changing every time

1 view (last 30 days)

Show older comments

numDays = 365;

numTrials = 1000;

maxPeople = 80;

pn = zeros(maxPeople, 1);

for numPeople = 1:maxPeople

for i = (1:numTrials)

probability = 1-(1-((numPeople-1)/randi(numDays)));

end

pn(numPeople) = probability;

end

%%

figure;

ax = axes;

plot(pn)

xlabel('Value')

ylabel('Probability')

### Answers (1)

Steven Lord
on 8 Sep 2022

Here's one line of your code. I've put it in block comments so MATLAB Answers won't try to execute it, since I have other code later in the answer I want to run and this line throwing an error because numPeople and numDays are not defined would prevent that.

%{

probability = 1-(1-((numPeople-1)/randi(numDays)));

%}

Since this line of code calls randi, which generates pseudorandom numbers, it's not surprising that the contents of the variable probability are different each time this line runs. If you rolled a 6-sided die over and over and always ended up with a 2, you'd be surprised (and perhaps a little angry at the person that gave you the die, for giving you a loaded die.)

n = 10;

rolls = zeros(1, n);

for whichroll = 1:n

rolls(whichroll) = randi(6);

end

rolls

Yes, I know I could have generated them all at once. And these rolls won't be the same as the previous ones.

otherrolls = randi(6, 1, n)

##### 3 Comments

Steven Lord
on 8 Sep 2022

### See Also

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!