| |
|
|
p.specht
| Die N-circa-k Funktion (Binomialkoeffizienten des Pascal´schen Dreiecks) führt rasch zu riesigen Zahlen, die die Double-precision floats von XProfan überfordern. Hier deshalb mein Versuch, die Zahlendarstellung mit getrennten Exponenten zu berechnen: Float-Zahlen circa 10^154 drohen nämlich im nächsten Schritt überzulaufen, und werden hier dann aufgesplittet. Die Anzahl der dadurch zusätzlich nötigen Kommaverschiebungen wird dann zusätzlich angeschrieben. Im allseits bekannten Pascalschen Dreieck ist N die 'N-te Untergeschoß-Ebene' und k der Ort in der jeweiligen Zeile, von links ab 1 gezählt. Demo ohne Gewähr!
WindowTitle "BinCoeff(n over k) = n!/((n-k)!*k!)"
var f!=10^154'1.3407807929942596324916056014016*10^154
declare n!,k!,p!,q!,i&:font 2: rpt:
set("decimals",0):cls rgb(0,240,255)
print " N = ";:input n!: loop:
locate 2,1:print " k = ";:input k!:case k!=0:goto "rpt"
if k!>n!:beep:goto "rpt":endif :case 2*k!>n!:k!=n!-k!
i&=int(k!+0.00000000000005):p!=1:q!=0
whileloop i&,1,-1:p!=p!*(n!+1-&Loop):p!=p!/&Loop
if p!>f!:p!=p!/f!:q!=q!+1:endif
endwhile
print "= BinCoeff(";n!;" over ";k!;") = "
case (p!>10000000000) or (q!>0): set("decimals",17)
print p! :case q!:print " *10^";154*q!
goto "loop"
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 14.04.2021 ▲ |
|
|
|