Nombres aléatoires entiers ?

s_lannois Messages postés 3 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 9 février 2007 - 17 oct. 2006 à 20:52
cs_microstar Messages postés 1 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 19 novembre 2006 - 19 nov. 2006 à 17:32
Bonjour,

Je voudrais créer un petit programme qui calculerait la somme des nombres pairs compris entre deux nombres aléatoires compris entre 0 et 100. Mon problème est que je dois travailler avec des entiers or, la fonction Math.random() génère un nombre "double".

Ma question est donc la suivante : comment générer, en java, un nombre entier compris entre 0 et 100 ?

Merci d'avance,

Sébastien.
A voir également:

8 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
17 oct. 2006 à 20:59
Salut,

après un voyage dans le vaste et perilleu monde de la javadoc tu arais trouvé java.util.Random qui as les méthodes


nextInt
public int nextInt()

Returns the next pseudorandom, uniformly distributed
int

value from this random number generator's sequence. The general
contract of <tt>nextInt</tt> is that one <tt>int</tt> value is
pseudorandomly generated and returned. All 2<sup>32
</sup> possible <tt>int</tt> values are produced with
(approximately) equal probability. The method <tt>nextInt</tt> is
implemented by class <tt>Random</tt> as follows:
public int nextInt() { return next(32); }

<dd><dl> * Returns: : <dd>the next pseudorandom, uniformly distributed
int

value from this random number generator's sequence.
</dd></dl><hr /><!-- -->
nextInt
public int nextInt(int n)

Returns a pseudorandom, uniformly distributed <tt>int</tt> value
between 0 (inclusive) and the specified value (exclusive), drawn from
this random number generator's sequence. The general contract of
<tt>nextInt</tt> is that one <tt>int</tt> value in the specified range
is pseudorandomly generated and returned. All <tt>n</tt> possible
<tt>int</tt> values are produced with (approximately) equal
probability. The method <tt>nextInt(int n)</tt> is implemented by
class <tt>Random</tt> as follows:
public int nextInt(int n) {
if (n<=0)
throw new IllegalArgumentException(\"n must be positive\");

if ((n & -n) == n) // i.e., n is a power of 2
return (int)((n * (long)next(31)) >> 31);

int bits, val;
do {
bits = next(31);
val = bits % n;
} while(bits - val + (n-1) < 0);
return val;
}

The hedge \"approximately\" is used in the foregoing description only
because the next method is only approximately an unbiased source of
independently chosen bits. If it were a perfect source of randomly
chosen bits, then the algorithm shown would choose <tt>int</tt>
values from the stated range with perfect uniformity.

The algorithm is slightly tricky. It rejects values that would result
in an uneven distribution (due to the fact that 2^31 is not divisible
by n). The probability of a value being rejected depends on n. The
worst case is n=2^30+1, for which the probability of a reject is 1/2,
and the expected number of iterations before the loop terminates is 2.

The algorithm treats the case where n is a power of two specially: it
returns the correct number of high-order bits from the underlying
pseudo-random number generator. In the absence of special treatment,
the correct number of low-order bits would be returned. Linear
congruential pseudo-random number generators such as the one
implemented by this class are known to have short periods in the
sequence of values of their low-order bits. Thus, this special case
greatly increases the length of the sequence of values returned by
successive calls to this method if n is a small power of two.

<dd><dl> * Parameters: : <dd>
n
- the bound on the random number to be returned. Must be
positive.
* Returns: : a pseudorandom, uniformly distributed <tt>int</tt>
value between 0 (inclusive) and n (exclusive).
* Throws: : <dd>
IllegalArgumentException
- n is not positive. * Since: : <dd>1.2
</dd></dl>

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
17 oct. 2006 à 22:09
on pourrait pas faire une javadoc en français en partant sur le même principe que wikipedia.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
17 oct. 2006 à 22:23
Salut,

pourquoi elle super simple à comprendre et hyper lisible le tout est de faire un effort

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 22
18 oct. 2006 à 21:17
Voila pour les anglophobes.
Il y a un projet de traduction ici : http://www.javadoconline.com/about.jsp?lang=fr&always=true

Mais attention, toute traduction peut altéré le sens.
Par exemple, "Inversion of Control", "Inversion du Contrôle" que neni "Injection de dépendance". La traduction à juste faire perdre la notion fondamentale.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
19 oct. 2006 à 08:03
C'est pourquoi il faut garder la version anglaise ;p
ou alors faire des recherches de tutos en français comprenant cette méthode

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
19 oct. 2006 à 09:15
Salut,

Ouep j'ajouterai meme qu'il est mieux de prendre des cours d'anglais et de s'y mettre serieusement par ce que si l'on attend apres une traduction en FR d'une doc on peut resté bloqué tres tres tres longtemp.
Puis bon c'est pas la mort et en plus vu que developpement == anglais (sauf 1% des cas), il reste 2 choix :
1 on apprend l'anglais.
2 on arrete le dev.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
19 oct. 2006 à 12:52
3 on anticipe en apprenant le mandarin qui sera dans 15 ans la langue officielle ;p

Non sérieusement, non seulement il est conseillé de trouver du code et des tutos en anglais, mais en plus il faut mettre ses noms de méthodes en anglais voire même (plus pénible) tout mettre en anglais (variables, commentaires ...)

Parce que à part faire du Windev ou du 4D (berk), tu trouveras aucun langague en français

Voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
cs_microstar Messages postés 1 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 19 novembre 2006
19 nov. 2006 à 17:32
il suffit de faire un transtipage, pour avoir un nombre entier entre 0 et 100 :

    int nombre = (int) (Math.random() * 101) ;
0
Rejoignez-nous