IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Algo de division et modul sur nombres infinis


Sujet :

C

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut Algo de division et modul sur nombres infinis
    Bonjour a tous,
    je suis en train de coder une calculette en C et je cherche le moyen de calculer le modulo et la division de deux nombres (qui sont dans des char *), j'ai code un algorithme, mais lorsque je cherche le modulo d'un nombre de + de 10 chiffres avec 2 par exemple, mais il met plus de 10s. Connaissez-vous des algorithmes "rapide" pour effectuer ce genre d'opérations.

    Merci d'avance.
    NeoKript

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    C'est quoi ton algorithme de modulo ?

    Sinon, tu peux utiliser le reste de la division entière. Une division euclidienne comme on l'a apprise à l'école, cela doit se coder assez facilement.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut
    Pour l'algo du modulo,
    par exemple pour A%B, je fait A-B jusqu'a que A < B, mais ce n'est pas trop rapide.

    Voila
    Merci d'avance
    NeoKript

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    C'est sur qu'avec un algo pareil cela va être long de calculer le modulo d'un nombre à 10 chiffres.

    Regarde du côté de la division euclidienne.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 486
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    j'ai code un algorithme, mais lorsque je cherche le modulo d'un nombre de + de 10 chiffres avec 2 par exemple, mais il met plus de 10s. Connaissez-vous des algorithmes "rapide" pour effectuer ce genre d'opérations
    Fais voir ton algo, déjà. On pourra ensuite te dire si on a plus efficace ou pas (a priori oui).

    Ensuite, si tu cherches le « modulo 2 » en particulier d'un nombre représenté en décimal par une chaîne de caractères, tu n'as pas besoin de le diviser : tu regardes simplement si le dernier chiffre est pair (donc si c'est un 0, un 2, un 4, un 6 ou un 8).

  6. #6
    Membre chevronné Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Par défaut
    Bonjour,

    Il y a une implémentation d'un algorithme de Knuth ici : http://www.hackersdelight.org/HDcode/divmnu.c.

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut
    Merci pour vos réponses,

    pour le moment pour le modulo, mon algo se limite pour A mod B par ex a faire B - A jusqu'à que le résultat soit inférieur a A...
    Donc pour un grand nombre modulo un petit, c'est très (très) lent.

    Pour le site que tu m'a passer dapounet, je n'ai pas tout compris.

    Merci d'avance
    NeoKript

  8. #8
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Par défaut
    Evidemment, ton algorthme a une complexité exponentielle sur les "grands nombres", c'est à dire ceux qui ont beaucoup de chiffres.
    Mais en effet il existe un algo polynomiale (plus rapide) pour ce problème.
    Tu peux, par exemple, créer un tableau de chiffres (de la taille maximale que tu veux), pour stocker ton nombre. Et ensuite, tu dois créer une fonction qui fait A % B , mais en essayant de faire la méthode comme sur le papier, comme en primaire où on t'a appris les divisions. Je vais essayer de retrouver l'algo...
    EDIT: sur ce site, ils parlent de quelque chose qui marche:
    http://www.developpez.net/forums/d81...rands-nombres/

  9. #9
    Membre émérite Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Par défaut
    On dirait un tek1 qui tente de faire une bystromatique
    Note je suis la pour la même chose, le modulo n'est pas vraiment difficile il s'agit d'une division suivi d'une soustraction.

    Pour la division, j'ai tenter de recoder un algo copiant l'humain (division écrite de primaire) mais le temps d'exécution reste trop long a mon gout. (mon exercice doit etre capable de gerer des nombres "infini").
    Les autres algo ne m'inspire pas vraiment dans le sens ou je ne les comprend pas ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. division nombre infini
    Par saturn1 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 28/10/2009, 21h47
  2. [MySQL] requete sur nombre de detail
    Par bidochon dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/05/2006, 05h41
  3. Réponses: 8
    Dernier message: 21/11/2005, 17h18
  4. modules sur serveur ?
    Par Batou dans le forum Modules
    Réponses: 6
    Dernier message: 25/08/2005, 03h13
  5. [CR8.5] Problème de division par zéro sur formule
    Par franck.cvitrans dans le forum Formules
    Réponses: 3
    Dernier message: 10/06/2004, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo