Probleme de type
Résolu
raygouda
-
raygouda -
raygouda -
Bonjour mes chers amis.
"010 052 215 211 901 091 305"
Un bloc B est chiffré par la formule C =(pow(B,e))mod n. en fait quand je met pow c'est pour juste dire B exposant e.
Dans mon cas e=7 et n=5141.En appliquant la formule on trouve:"0755 1324 2823 3550 3763 2237 2052".
1er cas avec un double:
int i;
double e,n;
double Cod[]={010, 052, 215, 211, 901, 091, 305};
e=7;
n=5141;
for(i=0;i<Cod.lenght;i++)
{
Cod[i]=(Math.pow(Cod[i],e)%n);
}
for(i=0;i<Cod.lenght;i++)
{
System.out.print("valeur"+i+": "+Cod[i]+" ");
}
Résultat1:valeur0: 755 valeur1: 1324 valeur2: 2824 valeur3: 3551 valeur4: 563 valeur5: 2237 valeur6: 2035
Dans ce cas les valeurs 2,3,4 et 6 sont fausses.
2eme cas un long
création d'une fonction puissance:
long puissance(long p1,long q1)
{
long puiss;
if(q1==1)
{
puiss=p1;
}
else{
puiss=p1*puissance(p1,(q1-1));
}
return puiss;
}
///////////////////////////////////////////
int i;
long e,n;
long Cod[]={010, 052, 215, 211, 901, 091, 305};
e=7;
n=5141;
for(i=0;i<Cod.lenght;i++)
{
Cod[i]=((puissance(Cod[i],e))%n);
}
for(i=0;i<Cod.lenght;i++)
{
System.out.print("valeur"+i+": "+Cod[i]+" ");
}
Résultat2:valeur0: 755 valeur1: 1324 valeur2: 2823 valeur3: 3550 valeur4: 140 valeur5: 2237 valeur6: 2052
Dans ce cas seule la valeur 4 est fausse.je pense que cela est du a la valeur de 901 exposant 7 qui est > à 9223372036854775807(la limite des types long).
SVP si quelqu'un pourrait me donner un moyen pour résoudre ce problème cela m'aidera énormément.
Merci d'avance.
"010 052 215 211 901 091 305"
Un bloc B est chiffré par la formule C =(pow(B,e))mod n. en fait quand je met pow c'est pour juste dire B exposant e.
Dans mon cas e=7 et n=5141.En appliquant la formule on trouve:"0755 1324 2823 3550 3763 2237 2052".
1er cas avec un double:
int i;
double e,n;
double Cod[]={010, 052, 215, 211, 901, 091, 305};
e=7;
n=5141;
for(i=0;i<Cod.lenght;i++)
{
Cod[i]=(Math.pow(Cod[i],e)%n);
}
for(i=0;i<Cod.lenght;i++)
{
System.out.print("valeur"+i+": "+Cod[i]+" ");
}
Résultat1:valeur0: 755 valeur1: 1324 valeur2: 2824 valeur3: 3551 valeur4: 563 valeur5: 2237 valeur6: 2035
Dans ce cas les valeurs 2,3,4 et 6 sont fausses.
2eme cas un long
création d'une fonction puissance:
long puissance(long p1,long q1)
{
long puiss;
if(q1==1)
{
puiss=p1;
}
else{
puiss=p1*puissance(p1,(q1-1));
}
return puiss;
}
///////////////////////////////////////////
int i;
long e,n;
long Cod[]={010, 052, 215, 211, 901, 091, 305};
e=7;
n=5141;
for(i=0;i<Cod.lenght;i++)
{
Cod[i]=((puissance(Cod[i],e))%n);
}
for(i=0;i<Cod.lenght;i++)
{
System.out.print("valeur"+i+": "+Cod[i]+" ");
}
Résultat2:valeur0: 755 valeur1: 1324 valeur2: 2823 valeur3: 3550 valeur4: 140 valeur5: 2237 valeur6: 2052
Dans ce cas seule la valeur 4 est fausse.je pense que cela est du a la valeur de 901 exposant 7 qui est > à 9223372036854775807(la limite des types long).
SVP si quelqu'un pourrait me donner un moyen pour résoudre ce problème cela m'aidera énormément.
Merci d'avance.
A voir également:
- Probleme de type
- Clear type - Guide
- Type de ram - Guide
- Comment changer le type de fichier - Guide
- Chat type coco - Accueil - Réseaux sociaux
- Erreur pour le propriétaire du site : type de clé non valide - Forum Mozilla Firefox
1 réponse
Regarde les BigInteger, c'est l'idéal pour ce genre de calculs.
raygouda
Merci KX.j'ai pu résoudre mon problème.c'est ce qui me fallait.