我试图做到的是以下几点:生成一个小范围的随机不重复的整数
我希望创建一个整数向量,从一个相对较小的范围内,并确保没有整数后面跟着相同的整数。
即,这是一个 “合法” 的向量: [1 3 4 2 5 3 2 3 5 4]
,这是一个 “非法” 载体(自5如下5): [1 3 4 2 5 5 2 3 5 4]
我试过用randi
和各种各样的变化与randperm
,我总是陷入困境,当我尝试生成一个向量约100个元素,从一个小范围即1和5之间的整数)。
函数运行时间太长。
下面是我所做的尝试之一:
function result = nonRepeatingRand(top, count)
result = randi(top, 1, count);
while any(diff(result) == 0)
result = randi(top, 1, count);
end
end
任何及所有的帮助将非常感激。谢谢 !
只是一个小评论。非重复的条件意味着你的向量不是“随机的” – bla