我試圖做到的是以下幾點:生成一個小範圍的隨機不重複的整數
我希望創建一個整數向量,從一個相對較小的範圍內,並確保沒有整數後面跟着相同的整數。
即,這是一個 「合法」 的向量: [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