teaching:progappchim:algos_entiers

Ceci est une ancienne révision du document !


Algorithmes sur entiers

La manipulation d'entiers fait l'objet de nombreuses applications en chimie, du fait que les atomes (et isotopes) comptent des nombres entiers de nucléons (nombre de masse), que les molécules (ou ions, complexes) sont constituées d'atomes individuels (cf. formules brutes, indices), que les stœchimétries des réactions impliquent le plus souvent des entiers, que des structures (hélices, cristaux,…) sont caractérisées par des rapports entiers,…

Cette page reprend quelques grands algorithmes classiques sur les nombres entiers, et introduit quelques algorithmes ayant des applications en chimie.

Explication géométrique : en comprenant un nombre entier comme une longueur et un couple d'entiers (a,b) comme un rectangle, leur PGCD est la longueur du côté du plus grand carré permettant de carreler entièrement ce rectangle. L'algorithme d'Euclide décompose ce rectangle en carrés, de plus en plus petits, par divisions euclidiennes successives, de la longueur par la largeur, puis de la largeur par le reste, jusqu'à un reste nul (observez bien ici !). Cela donne ceci en Python : <sxh python; title : gcd.py> #!/usr/bin/env python # -*- coding: UTF-8 -*- def gcd(a, b):

  """Calculate the Greatest Common Divisor of a and b.
  Unless b==0, the result will have the same sign as b (so that when
  b is divided by it, the result comes out positive).
  """
  while b:
      a, b = b, a%b
  return a

n1=210 n2=126 print gcd(n1, n2) </sxh>

Si on dispose des décompositions en facteurs premiers d'un nombre entier, on peut aussi établir la valeur du PGCD en effectuant le produit de tous les facteurs communs.

  • formules CHON
  • protéines
  • spectro de masse ?
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • teaching/progappchim/algos_entiers.1428977517.txt.gz
  • Dernière modification : 2015/04/14 04:11
  • de villersd