Posted to tcl by kbk at Sat Jun 15 16:27:17 GMT 2019view pretty
proc facs {N} { set lnfac 0. for {set n 2} {$n <= $N} {incr n} { puts "n = $n" # accumulate log(n!) set lnfac [expr {$lnfac + log($n)}] puts [format {ln(n!) = %e n! = %g} $lnfac [expr {exp($lnfac)}]] # calculate log(b), and b itself set lnb [expr {$lnfac / $n}] set b [expr {entier(ceil(exp($lnb)))}] puts [format {ln(b) = %e b = %g} $lnb $b] # format n! in floating point - with excess precision, but who cares set lognfac [expr {$lnfac/log(10.)}] set charnfac [expr {int($lognfac)}] set signfac [expr {10.**($lognfac - $charnfac)}] puts "$n! = ${signfac}E${charnfac}" # format b**n in floating point, again with excess precision set logbton [expr {$n * log($b) / log(10.)}] set charbton [expr {int($logbton)}] set sigbton [expr {10.**($logbton - $charbton)}] puts "$b**$n = ${sigbton}E${charbton}" } return } facs 10000
Comments
Posted by CecilWesterhof at Sun Jun 16 11:21:55 GMT 2019 [text] [code]
I implemented the old fashioned way what I mend: http://paste.tclers.tk/5173. Later I hope to implement your idea. By the way it was already at oeis: http://oeis.org/A065027. They have the list up-to 10.000. I am a 'little' further, so I will offer them my data.