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évisionLes deux révisions suivantes | ||
teaching:exos:sequences_brins_adn [2014/09/22 13:17] – [Énoncé] villersd | teaching:exos:sequences_brins_adn [2014/09/22 14:13] – 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 ===== | ||
+ | <sxh python; title : 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, | ||
+ | </ |