Java: au hasard le numéro de long en 0 <= x < n gamme

Aléatoire de la classe a une méthode pour générer de l'aléatoire int dans une plage donnée. Par exemple:

Random r = new Random(); 
int x = r.nextInt(100);

Ce serait de générer un int nombre plus ou égal à 0 et inférieur à 100. Je voudrais faire exactement la même chose avec le numéro de long.

long y = magicRandomLongGenerator(100);

Aléatoire classe a seulement nextLong(), mais il ne permet pas de la plage définie.

  • , Peut être utile: stackoverflow.com/questions/2290057/...
  • Avez-vous considéré comme juste l'obtention de votre long aléatoire et en prenant le mod de votre gamme? (Bien sûr, si la plage est à seulement 100 j'avais produire un int aléatoire, et de le jeter à la longue.)
  • java.util.Random n'utilise que de 48 bits de distribution (voir les détails de mise en œuvre), afin de ne pas avoir une distribution normale.
  • Dans les temps modernes, on pourrait envisager d'utiliser org.apache.commons.lang3.RandomUtils#nextLong.