Traduction d'un algorithme de calcul

Résolu/Fermé
reekoup007 Messages postés 39 Date d'inscription mardi 1 février 2011 Statut Membre Dernière intervention 27 novembre 2015 - Modifié par baladur13 le 12/01/2016 à 17:20
dna.factory Messages postés 25352 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 15 novembre 2024 - 12 janv. 2016 à 17:20
Bonjour,

Étant un débutant de Python, je ne suis pas en mesure de traduire et de comprendre l'intégralité de l'algorithme suivant :

# fonction factorielle
def fact(n):
    res = 1
    for i in range(1,n+1):     res *= i
    return res
 
# fonction combinatoire
def combin(n,k):
    x, y = 1, 1
    for i in range(n-k+1,n+1): x*=i # arrangement
    for i in range(2,k+1):     y*=i # permutation
    return x//y
 
# fonction binomiale
def binomiale(k, n, p):
    return combin(n,k) * p**k * (1-p)**(n-k)
 
# fonction somme binomiale
def sumbinomiale(k, n, p):
    res = 0
    for i in range(k + 1):
        b=binomiale(i, n, p)
        if b==0: break
        res += b
    return res
 
# fonction % de survie
def survival(def_house, nb_zomb, nb_citizens):
    if def_house >= nb_zomb or nb_zomb == 0:
        return 1.
    else:
        return sumbinomiale(def_house, nb_zomb, 1./nb_citizens)


Je souhaiterais comprendre ce que réalise l'algorithme, si possible le traduire en liste de calculs mathématiques.

Merci de votre aide,

Paul.



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

Arm.7.ageddon Messages postés 42 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 26 février 2016 4
12 janv. 2016 à 17:17
https://fr.wikipedia.org/wiki/Factorielle
https://fr.wikipedia.org/wiki/Combinaison_%28math%C3%A9matiques%29#Calcul_du_nombre_de_combinaisons
https://fr.wikipedia.org/wiki/Loi_binomiale

Pour les deux derniers, je donne ma langue au chat.. mais il semblerait que ça soit pour calculer une probabilité de survie de citoyens, dans une maison infestée de zombies :)
1
dna.factory Messages postés 25352 Date d'inscription mercredi 18 avril 2007 Statut Modérateur Dernière intervention 15 novembre 2024 1 613
12 janv. 2016 à 17:20
la dernière est juste une application de la loi binominale
0