Matlab - 生成随机数和计数

时间:2015-02-14 20:03:47

标签: matlab

我需要创建一个实验,我从1到4生成随机数,并在数字1,2,3,4出现至少一次时停止。然后我需要显示随机数量。

我是数学家的新手,到目前为止,我对如何做到这一点只有一个模糊的想法。

我想我需要为每个号码创建一个计数器,并在每个号码至少为一个时停止。

Y =兰迪([1,4]); DISP(Y); 生成1个随机数,但我想我需要使用while循环来保持生成随机数,并在计数器全部为> = 1时将其中断

由于

2 个答案:

答案 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)

可能有更优雅的方式来做到这一点,但这是一个小问题,效率不是一个大问题