2016-07-09 3 views
0

Ich möchte nach dem Zufallsprinzip eine Reihe von ganzen Zahlen im Bereich von 1 ~ 100 produzieren. Nachdem die ganzen Zahlen Sortierung,Satz von zufälligen ganzen Zahlen mit minimalen Intervallen in Matlab erzeugen

das minimale Intervall zwischen jeder ganzen Zahl von nicht weniger als 2. Beispielsweise sollte
2,4,8,10 

erfüllt die Anforderung während der

2,4,5,7 

nicht, da das Intervall zwischen 4 eingestellt und nachfolgend 5 ist weniger als 2. Gibt es einen Weg, dies zu erreichen? Vielen Dank!

+1

Was haben Sie versucht? Wie groß soll dein Set sein? –

Antwort

3
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 
Verwandte Themen