2016-03-21 3 views
-1

Ich möchte ein zufälliges Integer-Array in Java erstellen (min & max), aber ich möchte, dass jede zufällig generierte Zahl einen Offset-Abstand zwischen jedem anderen hat.Java: Erstelle ein zufälliges Integer-Array mit einem Offset/Abstand zwischen jedem Integer

I.e. Nehmen wir an, ich möchte eine Array-Liste erstellen, die 10 ganze Zahlen zwischen 20 und 100 enthält, dass der Offset/Abstand 5 sein sollte. Das Array könnte 21, 28, 35, 52, 58, 65, 72, 80, 86, 95 sein .

vielen Dank

+1

Was mit dem „Offset bedeuten do you/Abstand sollte 5 "sein? In Ihrem Beispiel haben Sie mehr als die Entfernung 5 zwischen 35 und 52 zum Beispiel. – aioobe

+0

Ich meine, dass jede Zahl mindestens 5 Integer Unterschied mit jedem anderen haben sollte. – Periplanomenos

+0

Wählen Sie 10 zufällige (aber unterschiedliche) Ganzzahlen im Bereich 2 bis 20 (siehe zum Beispiel [http://stackoverflow.com/q/158716/276052]) und multiplizieren Sie dann jede Zahl mit 5. – aioobe

Antwort

0

die einfache Variante (ohne Umgang mit Überlauf):

int min; 
int max; 
int offset; 

public int getRandomNumber(int current) { 
    int curMin = current - offset; 
    if (curMin < min) 
     curMin = min; 
    int curMax = current + offset; 
    if (curMax > max) 
     curMax = max; 
    return curMin + (int) (Math.random() * (curMax - curMin + 1)); 
} 

und die erste Zahl zu erhalten:

int first = min + (int) (Math.random() * (max - min + 1));