Counting the number 6s rolled from a dice
29 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nathan
el 16 de Oct. de 2025 a las 12:53
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 comentarios
Respuesta aceptada
Dyuman Joshi
el 16 de Oct. de 2025 a las 13:01
Editada: Dyuman Joshi
el 16 de Oct. de 2025 a las 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 comentarios
Torsten
el 16 de Oct. de 2025 a las 19:36
Editada: Torsten
el 16 de Oct. de 2025 a las 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
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!