2015-03-06 2 views
0

Je souhaite générer des nombres entiers aléatoires afin que le nombre généré suivant soit toujours supérieur au nombre précédent.Incrément de nombres générés de manière aléatoire

On suppose que je commence avec 3, je veux la prochaine toujours être supérieure à 3. Et dire que je 5 généré, je veux que le prochain soit supérieur à 5 et ainsi de suite ..

+0

Y a-t-il une limite supérieure ou est-ce que le nombre suivant autorisé est 40,000,000 etc.? – RealSkeptic

+0

Je voudrais jeter un oeil ici: http://stackoverflow.com/questions/363681/generating-random-integers-in-a-range-with-java – SimplyPanda

+0

Quel genre de hasard attendez-vous? Voulez-vous que chaque entier de la gamme soit sélectionné avec la même probabilité? Ou vous avez juste besoin de séquences de nombres croissants? –

Répondre

0
int rnd = 0; 
while (true) { 
    rnd = ThreadLocalRandom.current().nextInt(rnd +1, Integer.MAX_INT); 
    System.out.println("Next random: "+rnd); 
} 
0

Vous feriez stocker le nombre généré aléatoirement en tant que variable, puis l'utiliser comme valeur minimale pour la prochaine génération de nombres.

int x = 0; 
x = new Random.nextInt(aNumber) + x; 
4

Cela devrait vous permettre d'obtenir un nombre toujours plus grand que la valeur précédente. La distance est la distance maximale de la valeur précédente que vous voulez que le nombre soit.

public getLargerRandom(int previousValue){ 
    int range = 100; //set to whatever range you want numbers to have 

    return random.nextInt(range) + previousValue; 

} 
0

L'exemple suivant génère un ensemble de nombres aléatoires entre une valeur initiale et une valeur maximale sans dépasser le nombre maximal souhaité.

import java.util.Random; 

public class RandomNumbers { 
    public static void main(String[] args) { 
    GetIncreasingInts(20, 3, 101); 
    } 

    public static void GetIncreasingInts(int numIntsToGet, int start, int max) { 
    if (numIntsToGet > 0 && start >= 0 && max > 0) { 
     Random random = new Random(); 
     int nextStart = start; 
     int num = -1; 

     for (int index = 0; index < numIntsToGet; index++) { 
     if ((max - 1) <= nextStart) 
      break; 
     else { 
      num = nextStart + random.nextInt(max - nextStart); 
      nextStart = num; 

      System.out.println("Number: " + num); 
     } 
     } 
    } 
    } 
}