alea et nb premier
Le
remy
bonjour
toujour sur mon idee de generateur aleatoire
avec les nb premier
donc
un nb de 10 chiffres la graine
calcule ou recherche des 10 nb premier consecutif a la graine
recuperation du chiffre des dixaine
sur les 10 nb premier pour la creation d'une nouvelle graine
calcule ou recherche des 10 nouveaux nb premier consecutif a la nouvelle
grain est etc
les pb
des graines differente peuve genere les meme sequence
pas tres grave
plus grave
le system peut boucle si il y a deux sequence identique et consecutive
1 solution faire une permutation pas tres propre
2 en calculee un de plus et donc metre le 11 a la place de 10
3 change espace
x*10^10+graine
(x+1)*10^10+graine
ou x fait partie de la graine de depart se qui regle un peut
le premier pb
4 la base 10 n'est peut etre pas la meilleur
avent de code avez vous des critiques
si cela fct cela doit deja existe si non ou est le pb
est saver vous aussi si il existe des listes
de nb premier sur le woin woin woin
cela risque de me prendre un peut de temp pour faire
les fichier
10^10 ->20^10
20^10 ->30^10
etc
merci a+ remy
toujour sur mon idee de generateur aleatoire
avec les nb premier
donc
un nb de 10 chiffres la graine
calcule ou recherche des 10 nb premier consecutif a la graine
recuperation du chiffre des dixaine
sur les 10 nb premier pour la creation d'une nouvelle graine
calcule ou recherche des 10 nouveaux nb premier consecutif a la nouvelle
grain est etc
les pb
des graines differente peuve genere les meme sequence
pas tres grave
plus grave
le system peut boucle si il y a deux sequence identique et consecutive
1 solution faire une permutation pas tres propre
2 en calculee un de plus et donc metre le 11 a la place de 10
3 change espace
x*10^10+graine
(x+1)*10^10+graine
ou x fait partie de la graine de depart se qui regle un peut
le premier pb
4 la base 10 n'est peut etre pas la meilleur
avent de code avez vous des critiques
si cela fct cela doit deja existe si non ou est le pb
est saver vous aussi si il existe des listes
de nb premier sur le woin woin woin
cela risque de me prendre un peut de temp pour faire
les fichier
10^10 ->20^10
20^10 ->30^10
etc
merci a+ remy

Poser une question


en gros et pour faire simple
je fais un xor avec un bout de nb premier
+ un peut de cuisine pour changer de nb premier
a+ remy
"remy"
entre 2 manip j'aimerais
bien votre avi sur l'alea generais
merci a+ remy
1) faire tourner la machine pendant 3 h
pour calculer les x premiers nb premier a partir de y
avec le prog par exemple
http://www.umh.ac.be/~nombres/logiciel.htm
pc a 500 Mhz 512 Mo de ram
fichier 108 Mo de nb premier
2) javac *.java
3) java alea PREMIERS.TXT 50 100000
java alea Nom du fichier cle<100 nb de chiffre aleatoire
principal pb il faut autant de nb premier que de chiffre
import java.awt.*;
import java.io.*;
import java.util.*;
public class alea
{
public static void main(String args[])
{
gene ge=new gene(args[0],args[1],args[2]);
}
}
class gene
{
DataInputStream r;
Vector v;
gene(String nom,String cle,String nb)
{
// ouverture du fichier
try {
r=new DataInputStream (new FileInputStream(nom));
}catch(IOException e){System.out.println(e);}
this.v=init(r);
gene(Integer.parseInt(cle),Integer.parseInt(nb));
}
// remplisage du tableau 102 premier nb premier du fichier
// 0..101
public Vector init(DataInputStream d)
{
Vector v=new Vector();
try {
for (int i = 0 ; i <102 ; i++)
{
String s=r.readLine();
StringTokenizer st=new StringTokenizer(s);
st.nextToken();
st.nextToken();
String np=st.nextToken(); //recuperation du 3 champ
v.addElement(np);
}
}catch(IOException e)
{
System.out.println(e);
}
return v;
}
public int gene(int cle)
{
// recuperation du nb premier a la position cle du tableau
String n0=(String)v.elementAt(cle);
// suppression du nb premier a la position cle du tableau
v.removeElementAt(cle);
// recuperation du nb premier a la position cle+1 du tableau
String n1=(String)v.elementAt(cle+1);
// suppression du nb premier a la position cle+1 du tableau
v.removeElementAt(cle+1);
//recuperation du chiffre des dizaines de n0
String n010=n0.substring(n0.length()-2,n0.length()-1);
//recuperation du chiffre des dizaines de n1
String n110=n1.substring(n1.length()-2,n1.length()-1);
//convertion de type string -> int
int val0=Integer.parseInt(n010);
int val1=Integer.parseInt(n110);
//System.out.println(cle+" "+n0+" "+n1+" "+n010+" "+n110);
//l'on rajoute 2 nouveaux nb premier lus dans le fichier
Maj(2);
//calcul et retour de la nouvelle cle
return val1*10+val0;
}
public void Maj(int j)
{
try {
for (int i = 0 ; i <j ; i++)
{
String s=this.r.readLine();
StringTokenizer st=new StringTokenizer(s);
st.nextToken();
st.nextToken();
String np=st.nextToken();
//System.out.println("nouveau "+np+" "+v.size());
v.addElement(np);
}
}catch(IOException e){System.out.println(e);}
}
// creation de x alea a partir de la cle
public void gene(int cle,int nb)
{
for (int i = 0 ; i <nb ; i++)
{
cle=gene(cle);
System.out.print(cle+" ");
}
}
}
{
System.out.print("00"+" ");
}
else
{
System.out.print(cle+" ");
}