i have to plot the percentage of heads by the times token is trowed times, in a game of head or tail, but a need help for doing that. What can I use in my plot?

1 view (last 30 days)
------- the token is throwed n times, and I also need to know how to add a line at 50 percent at my plot
N = input('Coloque um valor para N: ');
cara = 0;
coroa = 0;
x=rand(1,N);
for i = 1:length(x)
if x(i) < 0.5
x(i) = 0; % cara
else
x(i) = 1; % coroa
end
end
figure
histogram(x);
title('Gráfico')
for i = 1: length(x)
if x(i) == 0
cara = cara + 1;
else
coroa = coroa + 1;
end
end
plot(cumsum(x==0))

Accepted Answer

Torsten
Torsten on 29 Jul 2022
Edited: Torsten on 29 Jul 2022
N = 500;
x=rand(1,N);
for i = 1:length(x)
if x(i) < 0.5
x(i) = 1; % cara
else
x(i) = 0; % coroa
end
end
plot((1:N),100*cumsum(x)./(1:N))
  1 Comment
Image Analyst
Image Analyst on 30 Jul 2022
@LUIS Clarification note: at the end, this will give you the probability for one experiment of tossing it 500 times. It does not give you the probability as a function of N (my code doesn't either) where N varies. If that's what you want, that's fine. And if the N is small, like 20, you can see from this one experiment's plot, it might give a probability of 30% instead of 50%. That's why I said to toss it 20 times like a million times - to get the true probability for 20 which should be 50%. But if what you want is to see the fraction as it approaches 50% as the number of tosses increases, then this shows it to you. Just be aware that the count for a certain number of tosses is not the probability for that number of tosses.
If you want a probability for all N, you'd need another, outer loop to have N vary.
for N = 2 : 500
instead of having N be fixed at some number like 20 or 500. So in essence you'd be building up an array giving the final value only of the plot above as N increases.

Sign in to comment.

More Answers (2)

Image Analyst
Image Analyst on 29 Jul 2022
You need a nested for loop. The inner loop will throw the token/coin N (or n) times and give you a percentage for that one experiment. Now you need to do that experiment a lot of times, like a million times or so, and that will be the outer loop
numExperiments = 1000000;
numTossesPerExperiment = N;
for k1 = 1 : numExperiments
countsThisExperiment = 0; % Reset counter.
% Toss coin N times counting the number of heads.
for k2 = 1 : N
% to do
end
% Record the percentage for this experiment
counts(k1) = nnz(x) / N;
end
histogram(counts);
grid on;

Voss
Voss on 30 Jul 2022
% N = input('Coloque um valor para N: ');
N = 2500;
x = round(rand(1,N));
figure
histogram(x);
title('Total #')
xticks([0 1])
xticklabels({'cara','coroa'})
figure()
plot(cumsum(x==0))
title('# of cara vs # of throws')
xlabel('throws')
ylabel('cara')
figure
plot(cumsum(x==0)./(1:N))
hold on
plot([1 N],[0.5 0.5],'--r')
title('proportion of cara')
xlabel('throw #')

Categories

Find more on Line Plots 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!