Counting the number 6s rolled from a dice

25 visualizzazioni (ultimi 30 giorni)
Nathan
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.

Risposta accettata

Dyuman Joshi
Dyuman Joshi il 16 Ott 2025 alle 13:01
Modificato: Dyuman Joshi il 16 Ott 2025 alle 13:03
You can also use randi to generate the data as well -
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
Hello
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
y = 183
You can also do it directly like this -
Y = sum(X==6)
Y = 183
%or
Y = nnz(X==6)
Y = 183
  3 Commenti
Dyuman Joshi
Dyuman Joshi il 16 Ott 2025 alle 13:16
Glad to have helped!
Torsten
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
ans = 0.1639
1/6
ans = 0.1667

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2025a

Community Treasure Hunt

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

Start Hunting!

Translated by