Exemple Python montrant comment trouver le plus grand diviseur commun basé sur la division euclidienne

不言
Libérer: 2018-04-04 16:52:09
original
6930 Les gens l'ont consulté

Cet article présente principalement la méthode Python de résolution du plus grand diviseur commun basée sur la méthode de division euclidienne. Il analyse la méthode de mise en œuvre et les compétences opérationnelles d'optimisation de Python en utilisant la méthode de division euclidienne pour résoudre le plus grand diviseur commun sous forme d'exemples. Les amis qui en ont besoin peuvent s'y référer

L'exemple de cet article décrit la méthode Python de résolution du plus grand diviseur commun basée sur la méthode de division euclidienne. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

J'ai déjà résumé la solution du plus grand diviseur commun dans Knuth TAOCP. En fait, la modification de l'algorithme dans les questions parascolaires nécessite la réalisation. du plus grand diviseur commun par division euclidienne.

Ma compréhension initiale de cette question était fausse et, naturellement, je n'avais pas de réponse standard. Écrivez maintenant l'implémentation du code correspondante selon la réponse standard :

# -*- coding:utf-8 -*-
#! python2
def MaxCommpisor(m,n):
  while m * n != 0:
    m = m % n
    if m == 0:
      return n
    else:
      n = n % m
      if n == 0:
        return m
print(MaxCommpisor(55,120))
Copier après la connexion

Le résultat de l'exécution du programme :

Échangez les positions des deux nombres. Le code est le suivant :

# -*- coding:utf-8 -*-
#! python2
def MaxCommpisor(m,n):
  while m * n != 0:
    m = m % n
    if m == 0:
      return n
    else:
      n = n % m
      if n == 0:
        return m
print(MaxCommpisor(120,55))
Copier après la connexion

Le résultat de l'exécution du programme :

La question posée mentionne que cela réduira l'efficacité. À en juger par le code ci-dessus, la perte d'efficacité devrait être due à la division et au jugement. Ici, prenez le code de l'algorithme précédent et comparez-le :

def CommDevisor(m,n):
  r = m % n
  while r != 0:
    m = n
    n = r
    r = m % n
  return n
print(CommDevisor(120,25))
Copier après la connexion

Résultats d'exécution :

Le nouvel algorithme comporte une opération supplémentaire de division et de comparaison dans la boucle. En fait, l'efficacité de la comparaison est toujours bonne, mais l'opération de division entraînera une diminution de l'efficacité.

PS : Voici quelques outils de calcul supplémentaires recommandés pour votre référence ultérieure :

Fonction unaire en ligne (équation ) outils de calcul de résolution :
http://tools.jb51.net/jisuanqi/equ_jisuanqi

Calculatrice scientifique en ligne use_advanced calculator Calcul en ligne :
http://tools.jb51.net/jisuanqi/jsqkexue

Calculatrice en ligne_Calculatrice standard :
http://tools. jb51.net/jisuanqi/jsq

Recommandations associées :

résumé php des algorithmes courants pour calculer le plus grand diviseur commun de deux entiers_Tutoriel PHP

Comment utiliser Python pour résoudre le plus grand diviseur commun

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!