我正在尝试创建一个使用嵌套循环的程序。内部循环应该在每次迭代中生成1到100之间的10个随机整数,并且应该继续生成10个随机数的集合,直到其中两个数字落在33到43之间。我希望外循环重复5次。很难弄清楚,感谢
我还没有测试过,但它应该是一个起点:
for ii = 1:5 % Repeat loop 5 times
value = 0;
while value == 0 % While loop, will keep going as long as that statement is satisfied
nums = randi([1 100], [1 10]); % Generate 10 random integers from 1 to 100
test_nums = ((nums > 33) & (nums < 43)); % Create a logical array which is 1 for nums between 33 and 43
Tot = sum(test_nums);
if Tot >= 2 % If the number of numbers between 33 and 43 is 2 or more, break the loop
value = 1;
end
end
disp(nums)
end
这就是你想要的吗?
编辑我现在已经测试过了。这或多或少正是你所要求的,但速度真的很慢。我不确定如何加快速度,因为这是一个保持一切的while循环,我不知道如何改进它。
编辑2现在它运行得很好-希望它能完全满足您的要求。