def bates_valuation( temps_detention, # Temps de détention (en années) tx_growth_div_pct, # Taux de croissance des dividendes (en %) tx_distrib_div_DPR_pct, # Taux de distribution des dividendes (en %) multiplicateur_PER, # Multiplicateur prévu au bout de X ans (PER) tx_actualisation_pct, # Taux d'actualisation (en %) BPA_0 # Bénéfice Par Action initial ): g = tx_growth_div_pct / 100.0 DPR = tx_distrib_div_DPR_pct / 100.0 r = tx_actualisation_pct / 100.0 T = temps_detention terme_actualise = ((1 + g) / (1 + r)) ** T partie_dividendes = DPR * ((1 + g) / (r - g)) * (1 - terme_actualise) partie_per_terminal = multiplicateur_PER * terme_actualise PER_0 = partie_dividendes + partie_per_terminal P_0 = PER_0 * BPA_0 return P_0, PER_0 # Programme principal print("la temps de detention =") temps_detention = float(input()) print("tx growth div (en%) =") tx_growth_div_pct = float(input()) print("tx distrib div DPR (en %) =") tx_distrib_div_DPR_pct = float(input()) print("Multiplicateur prévu au bout \nde X ans PER =") multiplicateur_PER = float(input()) print("Tx actualistation (%) =") tx_actualisation_pct = float(input()) print("BPA_0 (Bénéfice Par Action initial) =") BPA_0 = float(input()) P_0, PER_0 = bates_valuation( temps_detention, tx_growth_div_pct, tx_distrib_div_DPR_pct, multiplicateur_PER, tx_actualisation_pct, BPA_0 ) print("----- Résultats -----") print("PER_0 = {:.2f}".format(PER_0)) print("P_0 = {:.2f}".format(P_0)) print("") print("Formule récapitulative :") print("PER_0 = [DPR * ((1+g) / (r - g)) * (1 - ((1+g)/(1+r))^T)] + [PER_T * ((1+g)/(1+r))^T]") print("P_0 = PER_0 * BPA_0")