Counting the number 6s rolled from a dice
25 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Nathan
il 16 Ott 2025 alle 12:53
Modificato: Torsten
il 16 Ott 2025 alle 19:37
I was trying to get my code to count the number of 6s rolled from 1000 attempts from a dice however it keeps saying it has not rolled a single 6.
X= floor(rand(1,1000)*6)+1;
if X==6
y = y + 1
end
y
>> Week3Q1
y =
0
Why does it display 0 even though a 6 must have been rolled? Help would be appreciated.
0 Commenti
Risposta accettata
Dyuman Joshi
il 16 Ott 2025 alle 13:01
Modificato: Dyuman Joshi
il 16 Ott 2025 alle 13:03
X = randi([1 6], 1, 1000);
The "if" statement is only executed when all of the inputs are true -
if [true false]
disp('Hey')
elseif [true true true]
disp('Hello')
end
What you want to do is to go through each value in X and compare it to 6 -
y = 0;
for k=1:numel(X)
if X(k)==6
y = y+1;
end
end
y
You can also do it directly like this -
Y = sum(X==6)
%or
Y = nnz(X==6)
3 Commenti
Torsten
il 16 Ott 2025 alle 19:36
Modificato: Torsten
il 16 Ott 2025 alle 19:37
If you want to use "rand" to simulate your experiment, you can interprete the event that "rand" gives a value in between 5/6 and 1 as a "six" for the dice roll.
rng("default")
X = rand(1,10000);
n = nnz(X >= 5/6);
n/10000
1/6
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!