Counting the number 6s rolled from a dice

7 Ansichten (letzte 30 Tage)
Nathan
Nathan am 16 Okt. 2025
Bearbeitet: Torsten am 16 Okt. 2025
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.

Akzeptierte Antwort

Dyuman Joshi
Dyuman Joshi am 16 Okt. 2025
Bearbeitet: Dyuman Joshi am 16 Okt. 2025
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 Kommentare
Dyuman Joshi
Dyuman Joshi am 16 Okt. 2025
Glad to have helped!
Torsten
Torsten am 16 Okt. 2025
Bearbeitet: Torsten am 16 Okt. 2025
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2025a

Community Treasure Hunt

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

Start Hunting!

Translated by