Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| teaching:exos:sequences_brins_adn [2014/09/22 13:17] – [Énoncé] villersd | teaching:exos:sequences_brins_adn [2018/10/22 10:12] (Version actuelle) – villersd | ||
|---|---|---|---|
| Ligne 12: | Ligne 12: | ||
| * Avec i A, i C, i G et i T (i étant grand) | * Avec i A, i C, i G et i T (i étant grand) | ||
| * Si on considère une synthèse artificielle d'un brin composé de n bases issue d'un grand réservoir comprenant un nombre équivalent de chacune des bases, quel est le nombre de brins possibles comprenant 4 bases, 8 bases, 12 bases, 4*i bases ? | * Si on considère une synthèse artificielle d'un brin composé de n bases issue d'un grand réservoir comprenant un nombre équivalent de chacune des bases, quel est le nombre de brins possibles comprenant 4 bases, 8 bases, 12 bases, 4*i bases ? | ||
| + | |||
| + | ===== Programme Python ===== | ||
| + | <code python ADN-combinatoire-01.py> | ||
| + | # | ||
| + | # -*- coding: UTF-8 -*- | ||
| + | """ | ||
| + | Petit programme destiné à calculer des nombres de séquences ADN possibles | ||
| + | combien de brins différents est-il possible d' | ||
| + | Avec 1 A, 1 C, 1 G et 1 T | ||
| + | Avec 2 A, 2 C, 2 G et 2 T | ||
| + | Avec 3 A, 3 C, 3 G et 3 T | ||
| + | Avec i A, i C, i G et i T (i étant grand) | ||
| + | Variante : Si on considère une synthèse artificielle d'un brin composé | ||
| + | de n bases issue d'un grand réservoir comprenant un nombre équivalent de | ||
| + | chacune des bases, quel est le nombre de brins possibles comprenant | ||
| + | 4 bases, 8 bases, 12 bases, 4*i bases ? | ||
| + | Comparaisons de 2 variantes pour des petits nombres et en utilisant | ||
| + | la formule de Striling pour des grands nombres | ||
| + | """ | ||
| + | from math import * | ||
| + | def logfactstir(j): | ||
| + | # approximation de Stirling pour le logarithme de la factorielle | ||
| + | | ||
| + | return j*log(j) - j + log(2.*pi*j)/ | ||
| + | |||
| + | |||
| + | n=101 | ||
| + | # petits nombres | ||
| + | for i in range(1,n): | ||
| + | print(i, | ||
| + | |||
| + | # petits nombres, en log | ||
| + | for i in range(1,n): | ||
| + | print(i, | ||
| + | |||
| + | # grands nombres | ||
| + | # calcul suivant la formule de Stirling (http:// | ||
| + | # formule de Stirling : ln(j!) ~= j ln(j) - j + 1/2 ln(2πj) | ||
| + | # approximation fréquente en thermodynb : ln(j!) ~= j ln(j) - j | ||
| + | print(pi) | ||
| + | for i in range(100, | ||
| + | print(i, | ||
| + | |||
| + | # très grands nombres | ||
| + | print(pi) | ||
| + | for i in range(10000, | ||
| + | print(i, | ||
| + | </ | ||