![]() ![]() ![]() |
Le programme ci-dessous recherche les nombres de Bell jusqu'au rang n donné par l'utilisateur. Les premiers nombres sont :
1, 1, 2, 5, 15, 52, 203, 877, 4140, 21147, 115975, 678570, 4213597, 27644437, ...
Programme JavaScript |
➔ Le programme est très simple. Les fonctions comb() et fac() sont identiques à celles présentes dans le calcul des combinaisons à la page Blaise Pascal.
! Au-delà de 16 chiffres significatifs, on dépasse la capacité de traitement en nombres entiers du langage JavaScript. Les résultats n'on alors plus guère de sens, sinon un ordre de grandeur.
<SCRIPT
LANGUAGE=JavaScript> function bell() { var n,p var B=new Array() max=10; max=eval(prompt("Entrez n max > 1 :",max)) if(max==null||max<=1) return B[0]=1;B[1]=1;alert("B(0) = B(1) = 1.") for (n=2;n<=max;n++) { B[n]=0; for(k=0;k<=n-1;k++) { cnk=comb(n-1,k);B[n]=B[n]+cnk*B[k] } // fin for k alert("B("+n+") = "+B[n]) //if(!confirm("B("+n+") = "+B[np1]+". Je continue ?")) break } // fin for n }// fin bell function fac(n) { if (n<=1){return 1}; f=1; for(i=2;i<=n;i++){f=f*i} return f } function comb(n,p) { if (n==p || p==0){return 1}; if (p==1){return n}; num=n/p; for(i=1;i<=p-1;i++){num=num*(n-i)/i} return Math.round(num) } </SCRIPT> |