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

Algorithmes et structures de données Discussion :

decomposer un nombre entier


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2005
    Messages : 186
    Par défaut decomposer un nombre entier
    Bonjour,
    Comment je peux decomposer un nb QQ a une sommation des nbs qui appartienent a un ensembre definie.

    par exemple

    E={1,2,4,8,16,...}puissance a 2
    decompose(3)
    3=1+2;
    decompose(5)
    5=1+4;
    decompose(6)
    6=4+2;
    decompose(7)
    7=4+2+1;
    decompose(9)
    9=8+1;
    decompose(10)
    10=8+2;
    ....
    Merci

  2. #2
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    un code de ce type par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    function p2(n : integer) : string;
    var s : string; a : integer;
       begin
       s:='';
       if n <0 then s:='?' else if n=0 then s:='0' else
          begin
          s:='';
          a:=1;
          while n <> 0 do
             begin
             if ((n and 1)=1) then s:= IntToStr(a) + ' + ' + s;
             n:= n shr 1;
             a:=a shl 1;
             end;
          delete(s,length(s)-2,3);
          end;
       p2:=s;
       end;

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut Re: decomposer un nombre entier
    Citation Envoyé par azziz2005
    Comment je peux decomposer un nb QQ a une sommation des nbs qui appartienent a un ensembre definie.
    Le probleme est NP complet en general, mais certains ensembles (comme les puissances de deux) permettent une decomposition facile.

    Vu que le probleme est NP complet, il est difficile de faire beaucoup mieux que d'essayer toutes les possibilites. Le tout est de les visiter dans le bon ordre pour avoir la meilleure chance de trouver rapidement la bonne. La technique gloutonne (essayer d'abord a chaque etape le nombre le plus grand possible) est l'heuristique la plus evidente.

    Une recheche sur sac a dos, knapsack devrait fournir plus d'info.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    tu écris tes nombres en base 2
    0000000000000000001 1
    0000000000000000010 2
    0000000000000000100 4
    0000000000000001000 8
    0000000000000010000 16
    0000000000000100000 32

    tu observes ton nombre cible par exemple 9=1001 la réponse est inscrite
    dans le nombre 1000=8 + 1=1

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    je ne suis pas certain que ce soit un problème NP complet...

    Pour ce qui est du problème à résoudre :
    puisque tu connais déjà ton ensemble de nombre qui doivent servir à la décomposition, il te suffit de faire comme pour un décomposition en base 2, mais avec ton ensemble...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    Membre chevronné
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Par défaut
    Si, il est NP-complet. On peut très facilement réduire le problème de partition à ce problème.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2005
    Messages : 186
    Par défaut
    Bonjour,
    la decomposition d'un nombre en binaire resoud le probléme.
    j'ai une autre question a propos du codage de hamming
    une autre question SVP

    Le taux d'erreur est calculé a partir du nombre de bits recus erronnés
    / le nombre total des bits recus .
    Comment je peux analyser pour plusieurs transfers de données le taux d'erreurs entre 1% et 10%?

  8. #8
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Si tu veux des réponses, fais un nouveau forum...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2005
    Messages : 186
    Par défaut
    OK
    Merci

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/07/2010, 19h59
  2. Inverser nombre entier de 4 chiffres
    Par zenattitude dans le forum Langage
    Réponses: 3
    Dernier message: 27/11/2005, 15h18
  3. Format des nombres entiers, séparateurs de milliers
    Par zazaraignée dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2005, 01h25
  4. nombre entier
    Par eleve36 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/10/2005, 16h25
  5. [LG]Former un nombre entier à partir de chiffre naturel.
    Par lecanardjaune dans le forum Langage
    Réponses: 2
    Dernier message: 12/11/2003, 22h36

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