Avatar ·

Pourquoi un code avec des chaînes aléatoires affiche-t-il "hello world" ?

Bonjour à tous ! Je suis débutant en Java et je suis tombé sur un comportement étrange. J'ai écrit ce code : ```java Random random = new Random(-229985452); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 5; i++) { sb.append((char) ('a' + random.nextInt(26))); } System.out.println(sb.toString()); // Affiche "hello" Random random2 = new Random(-147909649); StringBuilder sb2 = new StringBuilder(); for (int i = 0; i < 5; i++) { sb2.append((char) ('a' + random2.nextInt(26))); } System.out.println(sb2.toString()); // Affiche "world" ``` Je m'attendais à ce qu'à chaque exécution, des chaînes aléatoires soient affichées. Mais ce code imprime systématiquement "hello" et "world" sur différentes machines. Pourquoi cela se produit-il ? Est-ce une sorte de magie ou une particularité de Java ? J'ai redémarré le programme plusieurs fois — le résultat est toujours le même. Expliquez-moi, s'il vous plaît, comment cela fonctionne. Merci d'avance ! <<>>

Réponse courte : la seed (graine) du générateur de nombres aléatoires

La classe java.util.Random