Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercice et algorithm

    26 novembre 2021 à 17:51:21

    J'allais écrire une connerie ...
    Puisque tu as plusieurs fils, je pensais à un dictionnaire:
    -
    class Noeud:
        def __init__(self, pere=None, fils={}, valeur=None):
            self.pere = pere
            self.fils = fils
            self.valeur = valeur
    On peut savoir le nombre de fils, ajouter ou supprimer un fils, descendre dans l'arbre, etc.
    Pour le dessin, je suppose qu'on devra faire un parcours en largeur.

    En fait, c'est plutôt un parcours en profondeur qui serait souhaitable. On veut savoir la largeur maximum du dessin en terme de nombre de "cellules" à dessiner.
    Au début, on associe la valeur 0 à tous les noeuds de l'arbre.
    On se rend jusqu'aux feuilles (noeud sans fils). on leur associe la valeur 1.
    On doit aditionner les valeurs de tous ses fils à chaque noeud.
    On devrait pouvoir faire remonter jusqqu'à la racine le plus grand nombre d'éléments par niveau.
    Ça devrait pouvoir se faire facilement de façon récursive Et un dictionnaire ne sera pas approprié. Une liste suffira.
    def somme(node):
        return sum(somme(n) for n in node.fils) or 1

    -
    Edité par PierrotLeFou 26 novembre 2021 à 19:29:07

    • Partager sur Facebook
    • Partager sur Twitter

    Le Tout est souvent plus grand que la somme de ses parties.

      27 novembre 2021 à 8:37:33

      J'ai fait l'exercice avec un parcours en profondeur (je pensais au départ le faire en largeur mais je me suis rendu compte que j'avais vite besoin de connaître le nombre de lignes), par contre la partie dessin est un peu prise de tête.

      • Partager sur Facebook
      • Partager sur Twitter
        27 novembre 2021 à 17:37:50

        Le problème est que les sous-arbres n'ont pas forcément tous la même profondeur.
        J'ai prévu un espace pour les feuilles qui ne sont pas au niveau le plus bas.
        Ça ne devrait pas être trop compliqqué si on n'a qu'un caractère associé à chaque noeud ou feuille.
        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

          6 avril 2022 à 21:46:18

          Bonjour, je suis sur mon deuxième compte ( mon premier compre : leprogrammeursolitaire) , je vous propose un nouveau exercice : Pyzip .

          1 niveau

          vous créerez votre propre method de compression avec python (toute simple ) il faudra que la taille du fichier baissera et pourra être unzipe 

          2 niveau

          vous créerez votre propre interface graphique qui permettra de zipper et de unzipper 

          3 niveau

          vous créerez votre propre site web qui permettra de zipper et de unzipper 

          -
          Edité par TheSmiley 6 avril 2022 à 21:50:39

          • Partager sur Facebook
          • Partager sur Twitter
            7 avril 2022 à 1:32:24

            Le codage (ou arbre) de Huffman se code peut-pêtre en Python.

            edit: j'avais commencé à le coder. Je ne comprimais pas par octets (un bit par octet) et je n'écrivais pas sur un fichier.

            Je ne connais pas l'algo de GNU zip (gzip / gunzip)

            -
            Edité par PierrotLeFou 7 avril 2022 à 1:48:06

            • Partager sur Facebook
            • Partager sur Twitter

            Le Tout est souvent plus grand que la somme de ses parties.

              7 avril 2022 à 8:55:38

              AntoineBarbierPY a écrit: > vous créerez votre propre method de compression avec python (toute simple ) il faudra que la taille du fichier baissera et pourra être unzipe

              Cette consigne n'est pas vraiment réalisable.

              Si tu connais un algo de compression qui permet systématiquement de réduire la taille des données en entrée, alors il suffirait de l'appliquer N fois sur les données pour avoir une taille de fichier qui tend vers zéro.

              • Partager sur Facebook
              • Partager sur Twitter
                7 avril 2022 à 15:13:47

                @Entwanne:
                Veux-tu dire que j'applique la compression sur un fichier déjà comprimé pour le réduire encore?
                J'ai déjà essayé avec gzip et ça ne marche pas. Le fichier devient souvent plus gros.

                Il n'y a plus d'information redondante après un certain temps.

                -
                Edité par PierrotLeFou 7 avril 2022 à 15:25:20

                • Partager sur Facebook
                • Partager sur Twitter

                Le Tout est souvent plus grand que la somme de ses parties.

                  7 avril 2022 à 20:15:41

                  entwanne a écrit:

                  AntoineBarbierPY a écrit: > vous créerez votre propre method de compression avec python (toute simple ) il faudra que la taille du fichier baissera et pourra être unzipe

                  Cette consigne n'est pas vraiment réalisable.

                  Si tu connais un algo de compression qui permet systématiquement de réduire la taille des données en entrée, alors il suffirait de l'appliquer N fois sur les données pour avoir une taille de fichier qui tend vers zéro.

                  je ne savait pas que cela n'etait pas possible donc la taille pourrait rester la même ou même grossir s'il le fallait

                  -
                  Edité par TheSmiley 7 avril 2022 à 20:15:58

                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 avril 2022 à 8:12:00

                    PierrotLeFou a écrit: > Veux-tu dire que j'applique la compression sur un fichier déjà comprimé pour le réduire encore? J'ai déjà essayé avec gzip et ça ne marche pas. Le fichier devient souvent plus gros.

                    Je dis justement que non, tous les algos de compression (sans pertes) ont leurs limites, sinon ça permettrait de compresser indéfiniment ce qui n'est pas possible.

                    Donc effectivement compresser des données déjà compressées n'aura souvent que peu d'effet (un zip dans un zip, ou aussi certains formats d'images/vidéos dans un zip).

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Exercice et algorithm

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    • Editeur
                    • Markdown