eMatematikas Prisijunk Forumas Užduotys Testai Pradžia

kaip apskaiciuoti gan dideli faktoriala.


sveiki.noreciau suzinoti kaip lengvai apskaiciavus toki milziniska fakrotiala kaip 50! ir pasakyt is kokio didziausio 10 laipsnio jis dalinas.

Dideliems faktorialams skaičiuoti galima naudoti Stirlingo formulę
[tex]n!\approx\sqrt{2\pi n}\frac{n^n}{e^n}[/tex]

Tai apytikslė faktorialo reikšmė, bet kai yra dideli skaičiai, tai paklaida nedidelė.

Dabar skaičiuojame duotą uždavinį

[tex]50!\approx\sqrt{2\pi 50}\frac{50^{50}}{e^{50}}=\sqrt{100\pi}\frac{5^{50}\cdot 10^{50}}{e^{50}}=10^1\sqrt{\pi}\frac{5^{50}\cdot 10^{50}}{e^{50}}=\sqrt{\pi}\frac{5^{50}\cdot 10^{51}}{e^{50}}[/tex]

Na matome, kad šis reiškinys dalinsis iš [tex]10^{51}[/tex]

na parašius programą kompas sako kad 10^12
ir wolframalpha nesutinka jog dalintųsi iš 10^51 http://www.wolframalpha.com/input/?i=50%21+mod+10%5E51

čia turbūt dėl aproksimacijos, nes nu ir kas kad mažai skirias bet tokiam uždaviniui tikslaus skaičiau reik, turbūt

pakeista prieš 14 m

Gali būti. Skaičiavimas pagal šią formulę tik apytikslis. O iš kur trauki, kad tikslus ats 10^12?

Misteris Pythonas pasakė :D

Šiaip aš klausiau pas kažką tai sakė kad tokiem uždaviniam spręst reik Legendre's formula naudot bet pažiūrėjau tai nelabai kas ten aišku, programą lengviau parašyt :D

Reiks pasidomėt. Nes šiaip galima išskaičiuot ir paprastai tą atsakymą, bet tai labai neįdomus ir ilgas darbas. Norisi gudriau, matematiškiau :) Vienas iš būdų manasis, bet tik kad paklaida atsiranda, nors ir mažesnė už 0,5%, bet atsiranda... :)

Tai ta Legendre's formula reik pažiūrėt

[tex]\sum_{k=1}^{\infty}\left\lfloor\frac{n}{p^k}\right\rfloor[/tex]
kiek skaičių dalinas iš n! kai p yra pirminis skaičius

o kai nepirminis nežinau :D

pakeista prieš 14 m

bandymo metodu pastebėjau, kad reik skaičių išskaidyti dauginamaisiais ir vietoj p rašyti didžiausią pirminį skaičių

10=2*5
tai atsakymas toks pats kaip ir kai p=5

o jei būtų
8=2^3

tai atsakymas toks pats kaip ir kai p=2 bet padalinta iš 3 (nes 2^3) "užfloorinant"
floor(47 / 3)=15

nežinau ar visada tinka, bet kiek pabandžiau tiko :D

pakeista prieš 14 m

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »