' schrieb:Meine 3 Whileschleifen funktionieren nur, wenn ich für k und n den Datentyp "Double" verwende. Bei U64 gibt es bei größeren Werten Fehler, auch hier im Bsp. der Lottozahlen (bei kleinen Werten klappt's).
An was liegt das?
Das VI kann ich nicht ankucken. Aber: Sowas liegt immer daran, dass bei Divisionen mit Integer nur Integer herauskommt und dabei Information verloren geht, nämlich der Nachkommaanteil.
Wenn du (n!/k!/(n!-k!)) machst anstelle (n!/(k!*(n!-k!)) kommt bei Integer was anderes heraus. Bei Double sind beide gleich.
Auch (k!*(n!-k!)) für entsprechend große n und k ist bei Integer schlecht. Das Produkt ist größer als MaxInt - was aber nicht zu einem Fehler führt! Hätte das Ergebnis z.B. 65 Bit, wird das 65. einfach ignoriert. (In LV mag das so sein, dass auf MaxInt begrenzt wird).