【发布时间】:2013-11-07 18:09:43
【问题描述】:
我想要完成的是:
我希望从一个相对较小的范围内创建一个整数向量,并确保没有一个整数后跟相同的整数。
即,这是一个“合法”向量: [1 3 4 2 5 3 2 3 5 4]
这是一个“非法”向量(因为 5 跟在 5 后面): [1 3 4 2 5 5 2 3 5 4]
我已经尝试过randi,以及randperm 的各种变体,当我尝试从一个小范围(即 1 到5).
函数运行时间过长。
这是我所做的尝试之一:
function result = nonRepeatingRand(top, count)
result = randi(top, 1, count);
while any(diff(result) == 0)
result = randi(top, 1, count);
end
end
我们将不胜感激任何和所有的帮助。谢谢!
【问题讨论】:
-
只是一个小评论。不重复的条件意味着您的向量不那么“随机”