2014-04-28 6 views
0

J'essaye de re-générer des nombres aléatoires dans android. Je veux générer deux nombres qui sont divisibles les uns par les autres. Si les nombres générés ne sont pas divisibles, je veux que le système essaie à nouveau jusqu'à ce qu'il génère des nombres qui sont divisibles les uns par les autres.Générer un nombre aléatoire. Android?

Voici mon code:

Random random = new Random(); 
      arrone = random.nextInt(100 - 20) + 20; 

      Random randm = new Random(); 
      arrtwo = randm.nextInt(11 - 2) + 2; 

      if (arrone % arrtwo ==0){ 

      // if they are divisible do this. 

      } else { 
      // if they are not divisible, I want it to try again and find two divisble numbers 

      } 

Répondre

0
boolean divisible = false; 
    while (!divisible) { 
     Random random = new Random(); 
     arrone = random.nextInt(100 - 20) + 20; 

     Random randm = new Random(); 
     arrtwo = randm.nextInt(11 - 2) + 2; 

     if (arrone % arrtwo == 0){ 

      // if they are divisible do this. 

      divisible = true; 
     } 
    } 
} 
3

Pour reformuler le problème, vous voulez deux numéros où l'on est un multiple de l'autre. La différence significative est que vous n'avez pas besoin d'utiliser une boucle pour trouver une telle paire de valeurs.

int min = 20; 
int max = 100; 
int second = rand.nextInt(11 - 2) + 2; 
int multiplier = Math.max((min + second-1)/second, 
          rand.nextInt(max/second) + 1); 
int first = multiplier * second; 

Dans ce cas, vous savez que le premier doit être divisible par le second.

Questions connexes