Bonjour Cédric,
La suite tend vers 0 et les imprécisions des calculs avec les nombres décimaux en Python peuvent offrir d'étranges résultats.
Il faut augmenter les précision en augmentant le nombre de décimales significatives :
Code : Tout sélectionner
import decimal
import math
D = decimal.Decimal
decimal.getcontext().prec = 60
u=1-2*D(-1).exp()
n=1
for k in range(20):
u = (n+1)*u-D(-1).exp()
n = n+1
print(u)
0.160602794142788392022381149192695662770944344841160827460815
0.113928941256922854471619677416626120867021903491714647874608
0.087836323856249096290954939505043616022276482935090756990595
0.071302178109803159859250927363757212665571283643685950445138
0.059933627487376637559981794021082408547616570830347868162991
0.051655951240194141324348787986115992387504864780667242633100
0.045368168750110808999266533727467071654227787213570106556963
0.040434077579554959397875033385742777442238953890363124504830
0.036461334624107272383226563695966906976578407871863410540463
0.033195239693737674619968430494175109296551355558729681437256
0.030463435153409773844097395768640444112805135672988342739235
0.028145215822884738377742374830864906020655632717080621102218
0.026153580348944015692869477470647816843367727007360860923215
0.024424264062717913797518391898256385204704774078645079340388
0.022908783832044299164770500210641295829465254226553434938371
0.021569883973310764205574733419441161655098190819640559444470
0.020378470348151434104821431388480042345956303721762235492623
0.019311495443434926396083426219659937127358639681714639852000
0.018350467697256206326144754231737875101361662602524962532163
0.017480380470938011253516068705034509682783783621256378667586
A bientôt