我想实现的目标是:
我希望创建一个整数向量,其范围相对较小,并确保没有任何整数后面跟着相同的整数。
例如,这是一个“合法”的向量: [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之间的整数)。
该函数运行时间太长了。
以下是我尝试之一:
任何帮助都将不胜感激。谢谢!
我希望创建一个整数向量,其范围相对较小,并确保没有任何整数后面跟着相同的整数。
例如,这是一个“合法”的向量: [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
任何帮助都将不胜感激。谢谢!