Bonjour,
Voici mon problème: quelques fois dans mes programmes je suis amené à utiliser des fonctions mathématiques sur des grands nombres, et comme je veux éviter Python je me tourne vers R. Pour R j'ai trouvé la bibliothèque gmp et pour Python c'est natif, or le PGCD de mêmes grands nombres me donne un résultat différent ?!
L'idée de calculer un pgcd je l'ai reprise d'un site où un enseignant de mathématiques utilisait Python comme outil pédagogique (les chiffres aussi ) : le lien
Programme R
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
#!/usr/bin/Rscript
library(gmp)
a<- as.bigz(295400101920462517154)
b<-as.bigz(10720242531918724)
# Vérification1 print(a)
# Vérification2 print(b)
gcd.bigz(29400101920462517154,10720242531918724)
gcd.bigz(a,b)
Résultat: 196 (pour les 2)
Le programme Python
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
#!/usr/bin/python
# -*- coding: utf-8 -*-
def pgcd(a, b):
    if b == 0:
        return a
    else:
        return pgcd(b, a%b)
print(pgcd(295400101920462517154,10720242531918724))
Résultat: 74
Je vais sur un site qui accepte les grands nombres comme ici et il me dit que le PGCD est de 74 donc comme Python.
Alors pourquoi R ne me donne pas 74 ? (je n'ai pas calculé à la main ce pgcd)
Les universitaires et les scientifiques plébiscitent R donc je pense que j'ai fait une boulette quelque part !!!
Merci de vos réponses