Chiffre des unites
Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
-
adamNIDO
- Membre Rationnel
- Messages: 967
- Enregistré le: 22 Jan 2014, 00:47
-
par adamNIDO » 24 Mai 2015, 10:49
Bonjour,
votre aide svp

-
Axiom
- Membre Naturel
- Messages: 82
- Enregistré le: 22 Mai 2015, 20:10
-
par Axiom » 24 Mai 2015, 11:07
Quelque chose de très classique en informatique, il peut-être obtenu par l'algorithme suivant, ici, écrit en java :
public static void main(String[] args) {
double a = Math.pow(3, 125);
int dizaine = (int) a/10; // Nombre des dizaines arrondi
int unite = (int) a - dizaine*10; // Obtention du chiffre unité
System.out.println("Le chiffre des unités est : "+unite);
}
Le résultat ici est 7. :lol3:
-
mathelot
par mathelot » 24 Mai 2015, 11:22
bjr,
le chiffre des unités d'un entier est son résidu modulo 10.





l'exposant est donc à traiter modulo 4

le chiffre des unités de

est le même que le chiffre des unités de

: 3.
-
adamNIDO
- Membre Rationnel
- Messages: 967
- Enregistré le: 22 Jan 2014, 00:47
-
par adamNIDO » 24 Mai 2015, 11:59
Axiom a écrit:Quelque chose de très classique en informatique, il peut-être obtenu par l'algorithme suivant, ici, écrit en java :
public static void main(String[] args) {
double a = Math.pow(3, 125);
int dizaine = (int) a/10; // Nombre des dizaines arrondi
int unite = (int) a - dizaine*10; // Obtention du chiffre unité
System.out.println("Le chiffre des unités est : "+unite);
}
Le résultat ici est 7. :lol3:
est ce que tu peux m'explique algorithme mathématiquement
est ce que tu peux le refaire en c++ sous forme de exe merci d'avance
-
adamNIDO
- Membre Rationnel
- Messages: 967
- Enregistré le: 22 Jan 2014, 00:47
-
par adamNIDO » 24 Mai 2015, 12:03
mathelot a écrit:bjr,
le chiffre des unités d'un entier est son résidu modulo 10.





l'exposant est donc à traiter modulo 4

le chiffre des unités de

est le même que le chiffre des unités de

: 3.
merci mais est ce ue tu peux m'explique avec a et b tel que

-
chombier
- Membre Irrationnel
- Messages: 1324
- Enregistré le: 19 Juil 2012, 18:35
-
par chombier » 24 Mai 2015, 12:40
Axiom a écrit:Quelque chose de très classique en informatique, il peut-être obtenu par l'algorithme suivant, ici, écrit en java :
public static void main(String[] args) {
double a = Math.pow(3, 125);
int dizaine = (int) a/10; // Nombre des dizaines arrondi
int unite = (int) a - dizaine*10; // Obtention du chiffre unité
System.out.println("Le chiffre des unités est : "+unite);
}
Le résultat ici est 7. :lol3:
Ca ne fonctionne pas car le type double n'est pas assez grand pour que le résultat soit exact.
Ici a= 4.3667350287920675E59.
La conversion en int est encore pire, quelque part, un entier est codé sur 32 bits et ne peut pas du tout représenter un nombre aussi grand. Du coup java te renvoie le plus grand entier qu'il est capable de mettre dans le type int : 2147483647 = 2^31-1
Il faut travailler en scheme !!
>(expt 3 125)
436673502879206784130402698570834024654748577491697818855443
EDIT : je ne sais pas pourquoi le forum ajoute une espace au milieu de mon (grand) chiffre
-
Axiom
- Membre Naturel
- Messages: 82
- Enregistré le: 22 Mai 2015, 20:10
-
par Axiom » 24 Mai 2015, 12:43
Oui, pardon, j'ai un peu merdouillé... ^^' :marteau:
-
chombier
- Membre Irrationnel
- Messages: 1324
- Enregistré le: 19 Juil 2012, 18:35
-
par chombier » 24 Mai 2015, 12:46
Axiom a écrit:Oui, pardon, j'ai un peu merdouillé... ^^' :marteau:
En java, pour les très grand nombres entiers, il faut utiliser la librairie BigInteger

-
Axiom
- Membre Naturel
- Messages: 82
- Enregistré le: 22 Mai 2015, 20:10
-
par Axiom » 24 Mai 2015, 12:46
Axiom a écrit:Oui, pardon, j'ai un peu merdouillé... ^^' :marteau:
La conversion en int était une grossière erreur de ma part, mais j'ai appris des choses comme ça..

Merci pour vos indications.
Et en C++ par contre, la mantisse des long n'est pas suffisante non plus, vous savez si il existe une librairie spéciale aussi ?
-
chombier
- Membre Irrationnel
- Messages: 1324
- Enregistré le: 19 Juil 2012, 18:35
-
par chombier » 24 Mai 2015, 12:54
Axiom a écrit:La conversion en int était une grossière erreur de ma part, mais j'ai appris des choses comme ça..

Merci pour vos indications.
Et en C++ par contre, la mantisse des long n'est pas suffisante non plus, vous savez si il existe une librairie spéciale aussi ?
C'est de ses erreurs qu'on apprend le plus !
EDIT : Il doit y avoir beaucoup de librairies en C++ qui proposent ça, vu la popularité du langage.
Je n'en sais pas plus, je n'aime pas beaucoup le C++.
Par contre je propose un algo qui marche avec des petits entiers :
- Code: Tout sélectionner
#include
int main(int argc, char *argv[])
{
int a = 1, i;
for (i=0 ; i<125 ; i++)
a = (a * 3) % 100000;
printf("%d\n", a);
return 0;
}
Il renvoie : 55443, soit les 5 derniers chiffres de 3^125
-
mathelot
par mathelot » 24 Mai 2015, 12:57
-
adamNIDO
- Membre Rationnel
- Messages: 967
- Enregistré le: 22 Jan 2014, 00:47
-
par adamNIDO » 24 Mai 2015, 13:03
oui mais svp quelle la regle que vous avez utilise pour dire que :
d'apres

et

que chiffre unites de

est

-
chombier
- Membre Irrationnel
- Messages: 1324
- Enregistré le: 19 Juil 2012, 18:35
-
par chombier » 24 Mai 2015, 13:03
-
chombier
- Membre Irrationnel
- Messages: 1324
- Enregistré le: 19 Juil 2012, 18:35
-
par chombier » 24 Mai 2015, 13:08
adamNIDO a écrit:oui mais svp quelle la regle que vous avez utilise pour dire que :
d'apres

et

que chiffre unites de

est

Si tu ne connais pas ces règles, il te faut un petit cours d'arithmétique. Ou une autre méthode.
Est-ce que tu connais la notation

?
Sinon, l'autre méthode :
3^0 =
13^1 =
33^2 =
93^3 = 2
73^4 = 8
13^5 = 24
33^6 = 72
93^7 = 218
7On voit que le chiffre des unités est cyclique : 1, 3, 9, 7, 1, 3, 9, 7...
C'est même assez facile à démontrer.
Il faut alors chercher le 125ème terme de cette suite (le premier "1" de la suite étant le zero-ième terme)
-
mathelot
par mathelot » 24 Mai 2015, 13:10

est une conséquence de


est élément neutre 1 pour la multiplication modulo 10,
on peut donc réduire l'exposant x de

modulo 4
-
adamNIDO
- Membre Rationnel
- Messages: 967
- Enregistré le: 22 Jan 2014, 00:47
-
par adamNIDO » 24 Mai 2015, 13:22
merci pour vous
j'ai deja lu le cours d'algorithme et je sais utiliser la notation de congruence mais juste je pense comment je peux faire ca sans calculatrice
-
adamNIDO
- Membre Rationnel
- Messages: 967
- Enregistré le: 22 Jan 2014, 00:47
-
par adamNIDO » 24 Mai 2015, 14:16
mathelot a écrit:
est une conséquence de


est élément neutre 1 pour la multiplication modulo 10,
on peut donc réduire l'exposant x de

modulo 4
donc on peut dire que pour n'importe quelle l'exposant x de

ona :

-
adamNIDO
- Membre Rationnel
- Messages: 967
- Enregistré le: 22 Jan 2014, 00:47
-
par adamNIDO » 24 Mai 2015, 14:28
-
chan79
- Membre Légendaire
- Messages: 10330
- Enregistré le: 04 Mar 2007, 19:39
-
par chan79 » 24 Mai 2015, 15:17
rien de nouveau mais on peut écrire
^{31}=81^{31})
qui finit par 1
donc

finit par 3
-
adamNIDO
- Membre Rationnel
- Messages: 967
- Enregistré le: 22 Jan 2014, 00:47
-
par adamNIDO » 24 Mai 2015, 15:27
chan79 a écrit:rien de nouveau mais on peut écrire
^{31}=81^{31})
qui finit par 1
donc

finit par 3
pouvez vous me rappeller la regèle que vous avez utilise
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 57 invités