• # Et donc ?

    Posté par  (site web personnel) . Évalué à 6.

    Comment veux-tu que quelqu'un t'aide si tu n'exposes pas ton problème de façon compréhensible ?
    D'ailleurs en posant ton problème de façon à l'expliquer à quelqu'un d'extérieur ne connaissant pas le sujet, il y a de fortes chances que tu te débloques tout seul ;-)

  • # Au hasard…

    Posté par  . Évalué à 2.

    a,b=c,d

    J'ai bon ?

  • # Bonjour

    Posté par  . Évalué à 3.

    Toute questions serais le bien bien venu

    À quelle étape es-tu bloqué ?

  • # permutations

    Posté par  (site web personnel) . Évalué à 0.

    Pour permuter deux nombres sans affectation intermédiaire :

    a=a-b
    b=a+b
    a=b-a

    • [^] # Re: permutations

      Posté par  (Mastodon) . Évalué à 5.

      a, b = 1, 2
      a, b = b, a

      What else ?

      • [^] # Re: permutations

        Posté par  (site web personnel) . Évalué à -2.

        ma solution est plus stylée (ie ça marche en C avec des valeurs algébriques quelconques minus les valeurs d'arrondi et sans variable intermédiaire).
        le truc des tuples python est sympa je vous l'accorde

        • [^] # Re: permutations

          Posté par  . Évalué à 5.

          ie ça marche en C avec des valeurs algébriques quelconques minus les valeurs d'arrondi et sans variable intermédiaire

          Je ne suis pas certain qu'il n'y ait pas de comportement indéfini dans le cas d'un dépassement de capacité ici?

        • [^] # Re: permutations

          Posté par  . Évalué à 0.

          Oui, c'est joli.

          C'est encore plus joli en considérant les int comme des valeur dans (Z/2Z)n : + et - deviennent la même opération.

          b = a ^ b;
          a = a ^ b;
          b = a ^ b;

          et les problème de débordement disparaissent.

          • [^] # Re: permutations

            Posté par  . Évalué à 3.

            et les problème de débordement disparaissent.

            Et sont remplacés par un problème qui est probablement encore plus fréquent (quand a et b ont la même valeur, l'algorithme met les 2 valeurs à 0).

            En python, la bonne manière de faire est celle de François Guerin.
            Il faut arrêter de se dire que plus un code repose sur une technique complexe, plus il est stylé/beau. C'est faux. Pas de bénéfice et des inconvénients par rapport à la méthode standard, ça veut dire que c'est un mauvais code.

            • [^] # Re: permutations

              Posté par  . Évalué à 1. Dernière modification le 25 juillet 2017 à 08:49.

              Et sont remplacés par un problème qui est probablement encore plus fréquent (quand a et b ont la même valeur, l'algorithme met les 2 valeurs à 0).

              Heu… Non :-)

              a = 3;
              b = 3;
              #b = a ^ b;
              b = 0
              # a = a ^ b; 
              a = 3
              # b = a ^ b;
              b = 3
              

              Non, l'algorithme est correcte. En fait, c'est exactement le même que l’algorithme au dessus, mais bit à bit.

              En python, la bonne manière de faire est celle de François Guerin.
              Il faut arrêter de se dire que plus un code repose sur une technique complexe, plus il est stylé/beau. C'est faux. Pas de bénéfice et des inconvénients par rapport à la méthode standard, ça veut dire que c'est un mauvais code.

              Ça c'est vrai. À ce sujet j'adore cette phrase de Brian Kernighan :

              Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?

              Pour les non anglophones :

              Tout le monde sait que déboguer est deux fois plus difficile qu'écrire un programme. Donc si vous écrivez le code aussi malin que vous le pouvez, comment allez vous le déboguer ?

            • [^] # Re: permutations

              Posté par  . Évalué à 1.

              Pour de la programmation en python, on peut rappeler le Zen of python :

              >>> import this
              Beautiful is better than ugly.
              Explicit is better than implicit.
              Simple is better than complex.
              [..]
              Readability counts.
              […]
              There should be one-- and preferably only one --obvious way to do it.
              […]
              If the implementation is hard to explain, it's a bad idea.
              If the implementation is easy to explain, it may be a good idea.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.