Dice rolling & loops
94 次查看(过去 30 天)
显示 更早的评论
Hi! Im currently solving a task in which i have to simulate dice rolling. I'm supposed to generate 10 random numbers (between 1 and 6 of course, that part I've managed to do using a=rand(1,10) and then multiplying with 6 and rounding them). The next part is writing a loop which I'm struggling with. If 5 or 6 is gotten 7 or more times its supposed to display 'gain is 2',if 5 or 6 is gotten 4,5 or 6 times then display gain is 1 and if its gotten 4 or less times then gain is 0. Any help or advice is appreciated
0 个评论
采纳的回答
James Tursa
2019-10-23
编辑:James Tursa
2019-10-23
The loop could look something like this:
n = numel(a);
got5or6 = 0;
for k=1:n
if( _______ ) % you fill in the blank here
got5or6 = got5or6 + 1;
end
end
% you put code here to test got5or6 value and print appropriate message
You need to write code for the two places indicated above. For the if-test, the code would test to see if a(k) is equal to 5 or equal to 6. For the display part, you will write code to see which range the got5or6 value fits into and then print the appropriate message. Give this a try and then ask for more help if you need it.
0 个评论
更多回答(1 个)
Jon
2019-10-22
You can generate a vector with 10 dice rolls using
rolls = randi(6,1,10)
You can determine how many of the 10 rolls are either a 5 or 6 using
count = sum(rolls>=5)
I think with those ideas you could then setup your logic to branch and display the corresponing text.
2 个评论
Jon
2019-10-23
You could do the whole thing with no loops and no if statements with something like this:
gain = [0 0 0 1 1 1 2 2 2 2]
rolls = randi(6,1,10)
count = sum(rolls>=5)
disp(['gain is ',num2str(gain(count))])
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!