tra - use java random




Generatore di numeri casuali che genera numeri interi per Java (3)

Voglio generare alcuni numeri casuali interi in Java, ma questo secondo alcune leggi di distribuzione. Più specifico:

  • Voglio generare alcuni numeri casuali per la distribuzione gaussiana. Ho scoperto solo generatori che restituiscono risultati doppi per la distribuzione gaussiana. Perché?

  • Voglio generare alcuni numeri interi casuali tra alcuni limiti per la distribuzione esponenziale? Qui ho anche scoperto solo i generatori che restituiscono il doppio. Inoltre, non ho trovato un modo per generare numeri esponenziali casuali solo tra due limiti.

Mi potete aiutare? Conosci una biblioteca che può fare ciò che voglio? Ho studiato biblioteca di Michael Flanagan, colt e apache's Commons Math ma non hanno ciò di cui ho bisogno.

Grazie!


Basta generare un doppio e ridimensionarlo all'intervallo intero richiesto. Ad esempio, se un normale generatore di numeri casuali (uniforme) genera numeri da 0.0 a 1.0 e vuoi numeri da 0 a 100, devi semplicemente moltiplicare il numero casuale generato per 100.


Se hai un numero doppio compreso tra 0 e 1, puoi ridimensionarlo all'intero:

int res = lowLimit + (int) (myRandFunction () * (highLimit - lowLimit));

Modificare:

Perché ho votato? Lui è triste perché ha una funzione che restituisce un doppio nella distribuzione che vuole (ho indovinato un doppio modulo da 0 a 1), quindi questo farà il lavoro.






exponential-distribution