Partage
  • Partager sur Facebook
  • Partager sur Twitter

compréhension d'un algorithme

python

Sujet résolu
    3 avril 2022 à 18:27:09

    Bonjour ,

    je ne comprends pas à quoi correspond le n*(n+1)*(n+2) : 

    N'hésitez pas à m'aider !^^

    Supposons qu'on veuille trouver la plus petite valeur de n telle que n(n+1)(n+2) dépasse un million. Ici on ne peut pas utiliser la boucle for puisqu'on ne saurait pas a priori quoi mettre dans range (Si on savait, on aurait la réponse au problème et donc pas besoin de faire de programme...). Voyons un exemple de code qui répond à notre problème

    n = 0

    while n*(n+1)*(n+2) < 1000000 :

      n+=1

    print(n)

    Notre programme commence avec n=0 puis tant que le calcul de n*(n+1)*(n+2) ne dépasse pas un million, on augmente n de 1 pour tester de nouveau si n*(n+1)*(n+2) ne dépasse pas un million etc. Dés que n*(n+1)*(n+2) dépasse un million, la boucle s'arrête et on affiche la valeur de n qui sera forcément la première telle que n*(n+1)*(n+2) dépasse un million.

    -
    Edité par Etourdinette 3 avril 2022 à 18:29:45

    • Partager sur Facebook
    • Partager sur Twitter
      3 avril 2022 à 20:59:09

      Bonjour,

      C'est la base de la programmation là quand même... Tant que n * (n+1)  * (n+2) est inférieur à 1 million alors rajouter 1 à n...

      Pensez aussi à utiliser la balise Code </>

      Essayez ceci si vous voulez voir ce que ça donne :

      >>> n = 1
      >>> while n*(n+1)*(n+2) < 1000000:
      	print(n, n*(n+1)*(n+2))
      	n+=1



      • Partager sur Facebook
      • Partager sur Twitter
        4 avril 2022 à 2:08:38

        On a grossièrement quelque chose de l'ordre de n**3 et la racine cubique de 1000000 est 100.
        On pourrait commencer un peu avant 100.
        >>> 99*100*101                                                                                                          
        999900                                                                                                                  
        >>> n=97                                                                                                                
        >>> while n*(n+1)*(n+2) < 1000000:                                                                                      
        ...  n+=1                                                                                                               
        ...                                                                                                                     
        >>> n                                                                                                                   
        100                                                                                                                     
        >>>
        On peut chercher avec des moyens plus rapides comme la recherche dichotomique, mais c'est plus compliqué.
        • Partager sur Facebook
        • Partager sur Twitter

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

          4 avril 2022 à 9:38:04

          PierrotLeFou a écrit:

          On a grossièrement quelque chose de l'ordre de n**3 et la racine cubique de 1000000 est 100.
          On pourrait commencer un peu avant 100.
          >>> 99*100*101                                                                                                          
          999900                                                                                                                  
          >>> n=97                                                                                                                
          >>> while n*(n+1)*(n+2) < 1000000:                                                                                      
          ...  n+=1                                                                                                               
          ...                                                                                                                     
          >>> n                                                                                                                   
          100                                                                                                                     
          >>>
          On peut chercher avec des moyens plus rapides comme la recherche dichotomique, mais c'est plus compliqué.

          Merci pour ta réponse !



          • Partager sur Facebook
          • Partager sur Twitter

          compréhension d'un algorithme

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