Décomposition d'un nombre en somme de puissance de 2 - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 34 sur 34

Décomposition d'un nombre en somme de puissance de 2



  1. #31
    Guimzo

    Re : Décomposition d'un nombre en somme de puissance de 2


    ------

    Bonsoir,

    J'ai plus ou moins avancé dans la séquence en incluant un "ELSE" qui si la condition c=0 n'est pas vérifiée, reprend le résultat de la différence de ( n- log[2](n) ) et refait l'opération 1; c'est à dire calcule le log[2] de la différence.
    Voici ce que ça donne, quoiqu'il y ait encore des instructions à inclure :

    =====================

    restart;
    Decomposition := proc (n)
    local a, b, c, d;
    a := evalf(log[2](n));
    b := floor(a);
    c := evalf(n-2^b);
    if c = 0 then print(Decomposition = 2*puissance(b)) else d := evalf(log[2](%)) :
    end if :
    end proc :
    Decomposition(67);

    =====================

    -----

  2. #32
    Tryss

    Re : Décomposition d'un nombre en somme de puissance de 2

    Bonjour @Tryss


    Voilà ce que j'ai fait avec ton exemple de code :

    =====================

    restart;
    Dec := proc (n)
    local a, b, c;
    c := n;
    while 0 < c do a := log[2](c):
    b := floor(a):
    print("2^"*b*" ");
    c := c-2^b :
    end do:
    end proc:
    Dec(16);

    =========================

    Cela ne fonctionne pas, donc si tu peux expliquer s'il te plaît le pourquoi du comment, montrer et expliquer la bonne formulation, ce serait aussi bien
    Merci
    Il doit y avoir des messages d'erreurs qui s'affichent et qui pourraient te guider vers une implémentation correcte.

    Déjà première chose : tu mélanges des : et les ; . Normalement c'est des ; pour terminer une ligne

    Deuxièmement, la syntaxe de la fonction print n'est pas la bonne. Si tu veux mixer des variables avec du texte, la fonction printf est plus adaptée :
    printf("2^%d ",b);

    troisièmement, pour terminer une boucle, c'est od; et non end do:

    Ce code devrait fonctionner

    Code:
    restart;
    Dec := proc (n)
       local a, b, c;
       c := n;
       while 0 < c do 
          a := log[2](c);
          b := floor(a);
          printf("2^%d ",b);
          c := c-2^b ;
       od;
    end proc;
    Dec(17);

  3. #33
    Guimzo

    Re : Décomposition d'un nombre en somme de puissance de 2

    Citation Envoyé par Tryss Voir le message

    Déjà première chose : tu mélanges des : et les ; . Normalement c'est des ; pour terminer une ligne
    troisièmement, pour terminer une boucle, c'est od; et non end do:
    Bonsoir Tryss,

    Merci, effectivement le code que tu as changé fonctionne, et renvoie les résultats cherchés ;
    ceci dit, non, une ligne en Maple ne se termine pas forcément par un ";", mais peut très bien se terminer par ":".
    La différence c'est que quand on met ";" alors en général, Maple affiche ce qui est avant le ";", comme par exemple un résultat intermédiaire ; le ":" par contre en fin de ligne, signifie que l'on ne demande pas à Maple d'afficher le résultat de l'expression qui se trouve avant les ":".

    Pour "od" et "end do", on peut utiliser l'une comme autre expression ; "od" est juste une contraction de "end do".
    Donc on peut aussi bien écrire od que end do pour terminer une boucle.
    En tout cas merci pour ton aide qui m'est fort utile, la séquence est enfin opérationnelle.
    Cordialement

  4. #34
    Guimzo

    Re : Décomposition d'un nombre en somme de puissance de 2

    Bonjour,

    Je reviens juste pour un petit détail, vis à vis de la séquence.
    Si qqn pourrait m' aider s'il vous plaît, afin que les résultats soient sous forme de liste ; ce qui permet d'inclure les résultats par exemple dans d'autres séquences...

    Voici la séquence dans son état actuel :

    ============

    restart;
    Dec := proc (n)
    local a, b, c;
    option remember;
    c := n;
    while 0 < c do a := log[2](c);
    b := floor(a);
    printf("2^%d ", b);
    c := c-2^b end do;
    [Fin] :
    end proc:
    Dec(291);

    =================

    Faudrait en fait que les résultats soient sous cette forme par exemple :

    Liste:= [2^a,2^b,2^c....]

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. décomposition d'un entier en somme de cubes avec reste <=7
    Par invite410beefe dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 09/06/2012, 00h19
  2. Décomposition en somme de sinusoides
    Par EChevallier dans le forum Physique
    Réponses: 17
    Dernier message: 26/08/2011, 11h28
  3. décomposition en somme de puissance de 3
    Par invitee44c9eab dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 26/07/2011, 10h38
  4. Décomposition en somme directe d'une représentation.
    Par invitebb921944 dans le forum Mathématiques du supérieur
    Réponses: 14
    Dernier message: 24/04/2010, 19h32
  5. décomposition d'une courbe en somme de gaussiennes
    Par invitefef2fecc dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 19/06/2006, 08h49