le code suivant vise à trouver à partir de quel entier k la somme (1+1/2+1/3+..+1/k) est superieur à un réel donné x ( par exemple ici x=8) .
Code : Tout sélectionner
prog():={
local s,k;
s,k:=0,0;
while(s<8){ k:=k+1;s:=s+1/k;}
print k;
}
:;
Dés qu'on change le ( s<8) par (s<=8), on a un joli " calcul en cours" . J'ai été obligé à chaque fois de le stopper pour reprendre la main.
Pourquoi ? Cherche t-il un k pour lequel la somme vaut 8 ? .
les estimations s'arrangent un peu en changeant la ligne while par
Code : Tout sélectionner
while(s<=15){ k:=k+1;s:=evalf(s+1/k);}
Merci .