Partage
  • Partager sur Facebook
  • Partager sur Twitter

comment ça marche (vraiment) le modulo %

Sujet résolu
    20 décembre 2016 à 18:16:39

    Salut, je me demande un truc tout bête, comment l'ordinateur arrive à calculer le modulo % soit le reste de la division euclidienne... (et aussi le //). Ce truc existe dans tout les langage mais si on voulait le programmer à la mains comment cela se ferais. A la main pour trouver le reste on tâtonner alors peut-être l'ordinateur fait de même mais comment exactement ?
    • Partager sur Facebook
    • Partager sur Twitter
      20 décembre 2016 à 18:24:31

      Bonjour,

      à la main on pose la division et le reste, c'est ce qui reste … d'où le nom.

      11  | 3
      -9  +---
      --  | 3
       2  |

      11 divisé par 3 égale 3 reste 2.

      11//3 = 3
      11%3 = 2

      • Partager sur Facebook
      • Partager sur Twitter
      First solve the problem. Then, write the code. ~ John Johnson
        20 décembre 2016 à 18:42:59

        Merci beaucoup, mais poser une division je savais plus ou moins faire (quand même !)... Du-coup l'ordi lui, il ne pose pas les division !? Pour savoir que 11=3*9+2, comment fait-il ?? C'est la le sens de ma question (je n'est pas été très clair peut-être).

        L'ordinateur pourrait par exemple faire 3*1 puis 3*2 puis 3*3 puis 3*4 et voir que 3*3 'fonctionne' mais ça me semble très peu performant. Sinon il pourrait faire 11/3 puis regarder la partie entière mais alors là comment fait il pour trouver la partie entière de 11/3 ? -->11/3 = 9/3 + 2/3 donc int(11/3) = 9/3 = 3 --> reste = 11-3*3 = 2 ???

        -
        Edité par azzeryx 20 décembre 2016 à 18:45:02

        • Partager sur Facebook
        • Partager sur Twitter
          20 décembre 2016 à 19:00:59

          La division entière c'est juste le fait de garder la partie entière du quotient. Ça revient donc à faire:

          part_ent = int(11/3)  # -> 3


          Le modulo c'est juste la différence entre le résultat de la division entière multiplié par le diviseur et le dividende:

          reste = 11 - int(11/3)*3  # -> 2


          Autrement dit:

          dividende = 11
          diviseur = 3
          
          part_ent = int(dividende / diviseur)
          reste = dividende - diviseur * int(dividende / diviseur)

          L'équivalent en utilisant les outils python:

          part_ent = dividende // diviseur
          reste = dividende % diviseur

          Après à savoir si c'est comme ça que si prend python pour faire le calcul, j'en ai aucune idée.

          • Partager sur Facebook
          • Partager sur Twitter
          Précepte: Le mieux est l'ennemi du bien

          comment ça marche (vraiment) le modulo %

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown