Większy typ całkowity niż int64

0

Cześć, tworzę sobie funkcję, która liczy mi symbol Newtona. Banał. Ale...
Spodziewam się liczb "n" ponad 20

(symbol Newtona: n!/(k!*(n-k)!))

Gdy np. chcę obliczyć symbol Newtona, gdzie: n = 20, a k = 6 to jest ok. Ale przy wyższych n, typ int64 o dziwo nie daje rady. Po prostu przy 21! zakres int64 jest przekraczany.

Czy jest jakiś typ CAŁKOWITY większy od int64? Jeśli nie, to jak takie coś stworzyć?

0

Nie da się normalnie.

Potrzebny jest unit vlong z Downloadu (chyba do Pascala), który pzowala liczyć olbrzymie liczby takie :)

0

Przede wszystkim - opracuj jakiś lepszy algorytm liczenia tego symbolu newtona. Wskazówka: n!/(n-5)!5! = (n(n-1)(n-2)(n-3)*(n-4))/5! - nie musisz wcale liczyć n! w tym celu.

0

hehe - pamiętam, jak kumpel z PK miał to na pierwszym roku w Delphi.
Program miał wypisywać po kolej symbol Newtona od 1 do zadanej liczby n i k.
Wykładowca mówił, aby max dla programu był ok. 100 bo to i tak będzie się liczyło w minutach...
Kumpel idzie na zaliczenie, wpisał coś koło 1200 a facet "co pan robi?!!" - kumpel odpalił progsa i po sekundzie miał wynik - faceta zamurowało :D

Tak jak wspomniał Adam - nie licz wszystkich slini! Przecież to się pięknie skraca!

1 użytkowników online, w tym zalogowanych: 0, gości: 1