Ich habe einen sehr einfachen linearen Kongruenzgenerator erstellt (oder zumindest denke ich, dass ich ihn habe), aber er gibt einige verrückte Werte einschließlich negativer Zahlen zurück. Ich kann nicht für das Leben von mir herauszufinden, warum, jede Hilfe sehr willkommen. Mein Code ist unten:Warum gibt mein Zufallszahlengenerator negative Werte zurück?
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long a = 252149039;
int c = 11;
long m =(long) Math.pow(2, 48);
long seed = System.currentTimeMillis();
System.out.println("How many Random numbers would you like to get?");
int number = scanner.nextInt();
for (int i = 0; i <= number;i++) {
seed = ((a*seed)+c) % m;
System.out.println(seed);
}
scanner.close();
}
Nie "roll your own" Krypto oder RNG. Verwenden Sie eine vertrauenswürdige Bibliothek und befolgen Sie deren Anweisungen sorgfältig. –