我需要创建一个实验,我从1到4生成随机数,并在数字1,2,3,4出现至少一次时停止。然后我需要显示随机数量。
我是数学家的新手,到目前为止,我对如何做到这一点只有一个模糊的想法。
我想我需要为每个号码创建一个计数器,并在每个号码至少为一个时停止。
Y =兰迪([1,4]); DISP(Y); 生成1个随机数,但我想我需要使用while循环来保持生成随机数,并在计数器全部为> = 1时将其中断
由于
答案 0 :(得分:2)
我认为以下代码可以解决您的问题。
counter = zeros(4, 1);
while ismember(0, counter)
y = randi([1, 4]);
counter(y) = counter(y)+1;
end
计数器包含每个数字的计数。
答案 1 :(得分:0)
杨璋的^^好多了
该解决方案将有效!您还可以使用向量来存储计数器
X = zeros(1, 4);
count = 0;
while X(1) == 0 || X(2) == 0 || X(3) == 0 || X(4) == 0
r = randi([1,4])
if r == 1
X(1) = X(1) + 1;
elseif r == 2
X(2) = X(2) + 1;
elseif r == 3
X(3) = X(3) + 1;
elseif r == 4
X(4) = X(4) + 1;
end
count = count + 1;
end
disp(count)
可能有更优雅的方式来做到这一点,但这是一个小问题,效率不是一个大问题