我想要完成的是以下内容:
我希望从相对较小的范围内创建一个整数向量,并确保没有一个整数后跟相同的整数。
即,这是一个“合法”向量:[ 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 之间的整数)生成大约 100 个元素的向量时,我总是卡住。
该功能运行时间过长。
这是我所做的尝试之一:
function result = nonRepeatingRand(top, count)
result = randi(top, 1, count);
while any(diff(result) == 0)
result = randi(top, 1, count);
end
end
任何和所有的帮助将不胜感激。谢谢 !