Kezdőoldal » Tudományok » Természettudományok » A pontosan 10-hatvány számjegy...

A pontosan 10-hatvány számjegyből álló faktoriális értékek ritkák. Melyik a következő?

Figyelt kérdés

13! éppen 10, 205022! pedig 10^6 számjegyből áll. (10^2, 10^3, 10^4, 10^5 számjegyből álló nincs.)

Melyik a következő? (… olyan szám, amelynek faktoriálisa 10^n (n>0, egész) számjegyből áll?)



2014. nov. 6. 17:39
1 2 3
 21/26 A kérdező kommentje:

"nem látom, hogy hol kezdődik a szám tizedes része. "

Így igaz, nem látszik. (Én rákerestem az utolsó számjegyekre)

"1450 és 53 ezek hogy jönnek ki?"

Csak kb-re írtam (lg √2πx miatt):

(2902 - lg 2902)/2 ~ 1450 ill. (108 - lg 108)/2 ~ 53

2014. nov. 13. 22:48
 22/26 bongolo ***** válasza:

Egyrészt korrigálom magam: az a képlet, amit a Wolfram írt, valamit az, ami #12-ben van linkelve, valójában ugyanaz. Felületesen néztem csak meg először, azért nem jöttem rá kapásból.


Másrészt:


"Talán épp azért kerekített rossz felé, mert nincs a √2πx-es tag figyelembe véve. :D"

- Nem kell kerekíteni, vágni kell, hisz k! = 10ⁿ megoldását adja, de az már n+1 jegyű. (Ezt #19 is írta)

- A Stirling-féle kifejezés logaritmusára (n+1/2)·lg(n/e) jobb közelítés, a fél a √x-ből jön. Ebből következik, hogy a W függvényes képlet n helyett n+1/2-et számolja ki. Ezért lett majdnem kereken 0.5 a törtrész. Ezt az 1/2-et tudtam korábban is, csak nem akartam hosszabban írni, hisz úgyis levágjuk a törtrészt.


"de ott nem látom, hogy hol kezdődik a szám tizedes része"

Nekem is sokat kellett néznem :) Türelmesen kibogoztam, nagyjából minden 100-adik számjegyet (pontosabban 4 hosszú számsorozatokat) lokalizáltam, hogy eljussak a tizedes helyéig. Olyan #9-ben látott sorozatokat kerestem, mint 1111 meg 777, stb.

2014. nov. 14. 00:02
Hasznos számodra ez a válasz?
 23/26 anonim ***** válasza:

Miután megírtam tegnap láttam, hogy valami nem stimmel, de nem volt hozzá már eszem (fáradt voltam), Nem értettem, hogy van az, hogy a törtrészt le kell vágni, de egy szám n számjegyeinek száma egyel többnek kell lennie pl log10(13) = 1.1139, log10(185)=2.2672 , a törtrész levágása után 1-et hozzá kell adni, nem értettem hova tűnt azaz 1.

Az oda tűnt , hogy log10(2*pi*n)/2-es tagot lehagytad. ***

Én valamiért úgy implementáltam, hogy mindig felfele kerekítem a faktoriális jegyeit számoló függvényben ami úgy működik, hogy meghívja a logStirling függvényt a visszaadott értékét felfele kerekíti ami jó megoldást ad ha nem pontosan 10 valamely hatványát adja vissza, de ez nem lehet mert egész értéket sem ad vissza sose.

***

pl

A logStirling2 legyen a te változatod amibe a log10(2*pi*n)/2-es tag nincs.

logStirling(100) = 157.96964...

logStirling2(100) = 156.57055...

De továbbmegyek, itt már csal a te változatod, pedig nem is nagy argumentumot kapott

logStirling(125)=209.274486

logStirling2(125)=207.826941

Továbbá:

logStirling(10^56) = 5 556 570 551 809 674 817 234 887 108 108 339 491 770 560 299 419 633 343 416.9537...

logStirling2(10^56) = 5 556 570 551 809 674 817 234 887 108 108 339 491 770 560 299 419 633 343 388.5546...

A korrigált (n+1/2)·lg(n/e) változatodba is találtam hibát amit nem írtam le, az kevesebbet csalt. Én a Stirling formulának a logaritmusát használtam ami bizonyítottan helyes értéket ad, csak megfelelően kell kerekíteni ha a számjegyek számára vagyok kíváncsi. A pi és e értékeit nagy pontossággal vettem "kilométer hosszan" nagy argumentumok esetén, de lehet nem kellett volna.

2014. nov. 14. 13:23
Hasznos számodra ez a válasz?
 24/26 bongolo ***** válasza:

Teljesen logikus, amit írsz, majd elgondolkodom rajta. Nem is azon, amit írtál, az jónak tűnik, hanem azon, hogy miért jött ki a W függvénnyel mégis a pontos eredmény. Vagy elkavarodtam a sok számjegy között???


Eredetileg nem akartam a W-vel pontos eredményt kihozni, azért is számoltam a durva n·lg(n/e)-vel. Gondoltam, a W ad majd egy nagyon jó induló értéket a Newton-Raphson-hoz. Abban természetesen a teljes Stirling formulát használtam.


A pontos logStirling érték egyébként ennyi:

  (n+1/2)·lg(n/e) + lg(2π·e)/2

A végén egy konstans van: 0,616 (nem kell sok tizedessel számolni), de nagyon fontos hozzáadni az első taghoz, hisz egész pontossággal kell a számjegyek száma. (Én 5 tizedesjeggyel számoltam, de az túlzás.)


Ma fárasztó napom volt, még a munkahelyen vagyok, most indulok haza... majd valamikor belegondolok, amikor pihentebb leszek :)

2014. nov. 14. 20:58
Hasznos számodra ez a válasz?
 25/26 A kérdező kommentje:

A wolframalpha sem (mindig) megbízható.

Itt kb 90 nagyságrendet téved:

[link]

2014. nov. 14. 21:03
 26/26 bongolo ***** válasza:

Nem volt korábban időm foglalkozni vele, csak most válaszolok:


#25: Hmm, tényleg bug van benne. Kisebb számokkal is találtam hasonló hibákat, valószínű nem jó pontossággal számol a WolframAlpha bizonyos jellegű input-ok esetén. Maga az algebra engine a belsejében jó, csak valószínű nem jól hajták meg az Alpha-ból. De ennek a bug-nak nincs szerepe abban, amit a W körül láttunk.


#23: A kerekítéssel nincs gond, kétféleképpen kell csinálni attól függően, hogy mit számol az ember:


a) Számjegyek száma n alapján:

Itt az lg n! (illetve az lgStirling) értékét le kell vágni egészre, majd 1-et hozzá kell adni. (Ez most ugyanaz, mintha felfelé kerekítenének, mert a faktoriális sosem lesz 10 hatvány, kivéve persze n=1-et).


b) n kiszámolása a számjegyek száma alapján:

Itt az inverz függvény (a W()-vel) értékét le kell vágni egészre, és NEM kell hozzáadni 1-et! Ugyanis kb. ezt az egyenletet oldjuk meg:

lg n! = 10^k

aminek a megoldása egy törtszám, de az a logaritmus (illetve Γ(n+1)) már éppen k+1 jegyű lenne. A nála kisebb egész faktoriálisa k, vagy k-nál kevesebb jegyű.


----


Na most eddig szerintem tiszta; amit nem értettem az az, hogy miért lesz pontos eredmény annak ellenére, hogy az x·lg(x/e) közel sem kielégítő közelítése a logfaktnak. Pl. az "x·lg(x/e) = 10^6" megoldásakor a Wolfram a durva közelítés inverz függvényét számolta ki, az eredmény 205022.747... lett. Ott csak vágni kell, nem kell 1-gyel növelni, és a pontos 205022-es érték jött ki.


Ez a rejtély megoldása:


A szokásos Stirling közelítés, de 10-es alapú logaritmussal, ez:

lg x! ≈ x·lg(x/e) + lg(2πx)/2

Kicsit átrendezve:

= (x+1/2)·lg(x/e) + lg(2πe)/2


Másik közelítés, amit máshol eddig nem láttam, csak a #12-ben linkelve (Gary, StackExchange):

(x+1/2)·lg((x+1/2)/e) + lg(2π)/2

vagyis kihagyott egy lge/2-t, de növelte az lgx-et.


Kipróbáltam, ez a közelítés minden x-re fele akkora hibájú, mint a Stirling, de közel sem annyival jobb, mintha a Stirlinghez hozzátennénk a Stirling sorozat következő tagját (ami lge/(12x) ha 10-es alapon számolunk).


Az x·lg(x/e) Gary függvényének egy egyszerű transzformáltja: el van tolva x-ben balra 1/2-del, y-ban felfelé lg(2π)/2-vel (ami 0.399 nagyságrendű).


x·lg(x/e) = 10^k megoldása:


x/e · lg(x/e) = 10^k/e

x/e · ln(x/e) = 10^k/(e·lge)

e^ln(x/e) · ln(x/e) = 10^k/(e·lge)

  Mivel W(z)·e^W(z) = z, ezért:

W(10^k/(e·lge)) = ln(x/e)

x = e·e^W(10^k/(e·lge))

  vagy kicsit átrendezve, ahogy Gary is csinálta ezzel az azonossággal: e^W(z) = z/W(z)

x = 10^k / (lge · W(10^k/(e·lge)))


Ebből az n értéke:

- egyrészt 1/2-et le kell x-ből vonni. Mivel utána úgyis levágjuk a tizedeseket, és (legalábbis a kipróbált értékek) mind 0.5-nél nagyobbra végződtek, ezért nem okozott semmilyen változást n-ben, ha nem vontuk le.

- 0.399-det le kell vonni y-ból, vagyis 10^k helyett (10^k - 0.399)-del kell számolni. A W() egy lapos függvény, 10^k mellett az a pici érték alig módosít valamit, x-ben az ezredeknél van csak változás. Szóval n-ben megint csak nincs változás.


Pl. 10^6 esetén:


10^6/(e·lge) = 847073.71726034307657914551723752985666319021428661...

W(10^6/(e·lge)) = 11.230876213179728891517310917345660321118755255069...

x = 205022.74704905940119945919847001924609822477534299...


(10^6-lg(2π)/2)/(e·lge) = 847073.37920174901033924314695807889514431594577285...

W((10^6-lg(2π)/2)/(e·lge)) = 11.230875846719431282659421539531077221238495424576...

x = 205022.75373889356245326376710777357115217875464588...


Itt most 0.0067 a különbség.

Ebből az x-ből kell még 1/2-et levonni, aztán levágni a törtrészt, n = 205022.


---


Persze ez csak arra magyarázat, hogy amiket kipróbáltam, azoknál miért jött ki a pontos érték a durva közelítés ellenére is. Ha írnék programot erre a problémára a W()-vel, akkor sem az 1/2-től, sem a 0.399-től nem tekintenék el.

2014. nov. 18. 15:14
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!