/* proba.bc (12 hats derangements) J-P. Calcule la probabilité d_n / n! qu'aucun chapeau ne retrouve son propriétaire d_n / n! = 1 - 1/1! + 1/2! - 1/3! + 1/4! - ... -1/11! + 1/12! usage : echo 12 | bc -q proba.bc p = 0.36787944132128159905 1/p = 2.71828182735187440887 \approx e */ scale=20; define proba(n) { auto u, v, i, s; u=1; s=1; for(i=1;i<=n;i++){ u = -u/i; s = s + u; } return(s); } m = read(); pr = proba(m); print " p = 0",pr,"\n","1/p = ",1/pr,"\n"; quit;