JAVA Math.random()
Fermé
YNWA
-
10 août 2010 à 10:09
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 28 juil. 2011 à 20:57
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 28 juil. 2011 à 20:57
A voir également:
- JAVA Math.random()
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Java runtime - Télécharger - Langages
4 réponses
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
Modifié par KX le 28/07/2011 à 22:01
Modifié par KX le 28/07/2011 à 22:01
Aaaargh ! Des maths ^^
Il faut considérer un isomorphisme pour passer de l'ensemble des entiers naturels N, à l'ensemble des entiers naturels dont l'unité est inférieure ou égale à 7 (appelons le M).
On peut par exemple appeler phi(n) le nième nombre de M.
Exemple : phi(0)=0... phi(7)=7, phi(8)=10... phi(15)=17... phi(8k+u)=10k+u
Inversement on peut retrouver à partir d'une valeur n de M, l'entier k tel que phi(k)=n.
Evidemment ici n ne peut pas finir par 8 ou 9 vu que n est le résultat de phi(k)
Au final chercher un nombre aléatoire entre 0 et 7777 qui ne finit ni par 8, ni par 9, c'est chercher phi(n) où n est un nombre aléatoire entre 0 et psi(7777)
Cette méthode bien qu'un peu mathématiques a un certain nombre d'avantages, en particulier celui de conserver la même probabilité pour chacune des valeurs possibles.
La confiance n'exclut pas le contrôle
Il faut considérer un isomorphisme pour passer de l'ensemble des entiers naturels N, à l'ensemble des entiers naturels dont l'unité est inférieure ou égale à 7 (appelons le M).
On peut par exemple appeler phi(n) le nième nombre de M.
Exemple : phi(0)=0... phi(7)=7, phi(8)=10... phi(15)=17... phi(8k+u)=10k+u
public static int phi(int n) { return (n/8)*10+(n%8); }
Inversement on peut retrouver à partir d'une valeur n de M, l'entier k tel que phi(k)=n.
Evidemment ici n ne peut pas finir par 8 ou 9 vu que n est le résultat de phi(k)
public static int psi(int n) { return (n/10)*8+(n%10); }
Au final chercher un nombre aléatoire entre 0 et 7777 qui ne finit ni par 8, ni par 9, c'est chercher phi(n) où n est un nombre aléatoire entre 0 et psi(7777)
import java.util.Random; public final static Random rand = new Random(); public final static int MAX = psi(7777); // 6223 public static int aleatoire() { return phi(rand.nextInt(MAX+1)); }
Cette méthode bien qu'un peu mathématiques a un certain nombre d'avantages, en particulier celui de conserver la même probabilité pour chacune des valeurs possibles.
La confiance n'exclut pas le contrôle
oussama_xt
Messages postés
9
Date d'inscription
mardi 24 août 2010
Statut
Membre
Dernière intervention
24 août 2010
24 août 2010 à 10:28
24 août 2010 à 10:28
voir maple :D
Jmarwen
Messages postés
2
Date d'inscription
mardi 24 août 2010
Statut
Membre
Dernière intervention
24 août 2010
24 août 2010 à 12:31
24 août 2010 à 12:31
bonjour
je te donne une petite idée
Random r = new Random();
int i;
do
{
i = r.nextInt(7777);
String temp = String.Valueof(i) ;
}
while( temp.endsWith("9")||temp.endsWith("8") )
essaie ça peut etre
je te donne une petite idée
Random r = new Random();
int i;
do
{
i = r.nextInt(7777);
String temp = String.Valueof(i) ;
}
while( temp.endsWith("9")||temp.endsWith("8") )
essaie ça peut etre