からランダム非反復整数を生成します。次され、私が達成しようとしているどのような小さな範囲
私は比較的小さな範囲から、整数のベクトルを作成したい、と整数のことを確認してください。同じ整数が続きます。
すなわち、これは、 "合法" ベクトルである: [1 2 3 4 5 3 2 3 5 4]
及び(5 5以下のため)、これは、 "違法" ベクトルである: [1 3 4 2 5 5 2 3 5 4]
私はとすべてのバリエーションを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