簡體   English   中英

在Matlab中以最小間隔生成隨機整數集

[英]Produce set of random integers with minimum intervals in Matlab

我想隨機產生一組1到100的整數。 對整數進行排序后,每個整數之間的最小間隔不應小於2。例如

2,4,8,10

滿足以下條件

2,4,5,7

因為4到5之間的間隔小於2,所以不會這樣做嗎?有什么方法可以實現? 謝謝!

N = 10; % number of integers required
delta = 2; % minimum difference required

a = randperm(100);
idx = 1;
b = a(idx);

while(length(b) < N && idx < length(a))
    idx = idx+1;
    c = abs(b - a(idx));
    if any(c < delta)
        continue;
    end
    b = [b; a(idx)];
end

b

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM