11Fermer13
ZephLe 30/11/2006 à 09:53
bon :

Tu veux un entier aléatoire compris entre 1 et N, N étant ton paramètre. Tu peux utiliser une fonction, Math.random () qui génère un nombre aléatoire X tel que 0 <= X < 1, il ne reste donc plus qu'à changer de domaine.

Si tu fais "Math.random () * N", tu obtiendras un nombre décimal X tel que 0 <= X < N, et donc si tu fais (int)(Math.random () * N), en supprimant toutes les décimales, tu as un nombre entier compris entre 0 et N-1 inclus. Il suffit d'ajouter 1 pour avoir le résultat de ta question b, la réponse de the_chojin était donc fausse.

Pour la question a, vu que tu veux un nombre compris entre 0 et N au lieu de 0 et N-1, il faut augmenter le nombre de possibilités au lieu de décaler le domaine, c'est donc au moment de la multiplication qu'il faut ajouter 1 à N pour obtenir "N+1" possibilités différentes plutôt que "N", ce qui donne donc "(int)(Math.random () * (N + 1))".

Mais franchement si tu luttes sur ce genre d'exos, reprends sérieusement des cours d'algorithmique plutôt que de java, dans un premier temps :/