假设用户必须输入一个介于指定范围之间的数字,并且您希望 MatLab 跟踪生成大于用户所选数字的数字所花费的次数。
您将如何对randi
函数设置条件,以及如何跟踪尝试次数?
我正在考虑将用户的输入设置为变量 a,然后声明一个“while”条件,即输入值“a”必须在我指定的范围之间,如果为真,则randi
以其条件启动函数;如果输入的值不在指定范围内,则显示错误消息。
这是一个简单的实现,它使用rand
(选择一个介于 0 和 1 之间的数字)而不是randi
:
buff=1000; % number of random numbers to test with each iteration...
yn=1;
while yn
num=input('Enter a number between 0 and 1 >> ');
nn = -buff;
found=[];
while isempty(found)
nn= nn+buff;
found=find(rand(buff,1)>num,1,'first');
end
nn=nn+found;
disp(nn)
yn=input('Would you like to try again? (0=no,1=yes) >> ');
end
变量nn
包含第一次成功之前的试验次数。
测试运行如下所示:
Enter a number between 0 and 1 >> 0.999
1325
Would you like to try again? (0=no,1=yes) >> 0
修改使用randi
应该很简单。