jayrandom: (Default)
[personal profile] jayrandom
Не хватает функции, вычисляющей аргумент факториала по его значению.
Ведь не перебором же это делать - даже если не линейным, а бисектирующим.

ну что Вы

Date: 2005-03-20 10:45 am (UTC)
From: [identity profile] not-knot.livejournal.com
ln x/ln ln x с точностью до константы

Re: ну что Вы

Date: 2005-03-20 12:44 pm (UTC)
From: [identity profile] jayrandom.livejournal.com
Да-да, точность до константы - это замечательная идея :) Быстро и бесполезно.

В своё время меня шокировало, что существует целая ветка математики, занимающаяся оценками "с точностью до мультипликативной константы" - Колмогоровская сложность. И только несколько лет спустя до меня стало доходить, что ведь и из таких в принципе невычислимых эфемерностей можно какую-то пользу извлечь.

Date: 2005-03-20 12:57 pm (UTC)
From: [identity profile] not-knot.livejournal.com
N = n! = sqrt(n) C*(n/e)^(n+-1/12n), какая-то там оценка есть
ln (n!/C) = n (ln n - 1) + ln n/2
ln ln (n!/C) = ln n + ln (ln n - 1)
ln / (ln ln - ln ln ln - 1) = n + можно оценить точность, она будет расти с увеличением n

Напомню, что у Вас аргумент по определению целый, так что как только получите точность 0.4 - всё, работает.

Date: 2005-03-20 12:58 pm (UTC)
From: [identity profile] not-knot.livejournal.com
А константа = 1, просто мне в первом посту было лень вспоминать формулы

Date: 2005-03-20 01:15 pm (UTC)
From: [identity profile] jayrandom.livejournal.com
Может быть поближе к бесконечности :).

Сейчас проверил - если ещё 10 из результата вычесть, то уже третий десяток нормально округляется. Но потом плавно уплывает дальше :)

3, 3!=6, antifact=4.63539274206497
4, 4!=24, antifact=277.072577780632
5, 5!=120, antifact=30.7523106350467
6, 6!=720, antifact=16.2575861110491
7, 7!=5040, antifact=12.3872101283211
8, 8!=40320, antifact=11.1213052883192
9, 9!=362880, antifact=10.8615636326171
10, 10!=3628800, antifact=11.0896635881942
11, 11!=39916800, antifact=11.589241766548
12, 12!=479001600, antifact=12.2545632591424
13, 13!=6227020800, antifact=13.0280353761983
14, 14!=87178291200, antifact=13.8756946808858
15, 15!=1307674368000, antifact=14.7762585374334
16, 16!=20922789888000, antifact=15.7157357941107
17, 17!=355687428096000, antifact=16.6845649963539
18, 18!=6.402373705728e+15, antifact=17.6759993699014
19, 19!=1.21645100408832e+17, antifact=18.6851486691666
20, 20!=2.43290200817664e+18, antifact=19.7083864414636
21, 21!=5.10909421717094e+19, antifact=20.7429700832666
22, 22!=1.12400072777761e+21, antifact=21.7867897391281
23, 23!=2.5852016738885e+22, antifact=22.8381978843081
24, 24!=6.20448401733239e+23, antifact=23.8958909389795
25, 25!=1.5511210043331e+25, antifact=24.9588253153684
26, 26!=4.03291461126606e+26, antifact=26.0261567800618
27, 27!=1.08888694504184e+28, antifact=27.097195930043
28, 28!=3.04888344611714e+29, antifact=28.1713750121476
29, 29!=8.8417619937397e+30, antifact=29.2482228616815
30, 30!=2.65252859812191e+32, antifact=30.3273457407684
...
38, 38!=5.23022617466601e+44, antifact=39.0112585087701
39, 39!=2.03978820811974e+46, antifact=40.1005565627439
40, 40!=8.15915283247898e+47, antifact=41.1903237295833
...
48, 48!=1.24139155925361e+61, antifact=49.9179607835668
49, 49!=6.08281864034268e+62, antifact=51.0094423593456
50, 50!=3.04140932017134e+64, antifact=52.1009364112403

ну и так далее. Ошибка маленькая, но что-то в обозримом настоящем не очень останавливается.

Profile

jayrandom: (Default)
jayrandom

January 2026

S M T W T F S
    1 23
45678910
111213141516 17
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 19th, 2026 06:50 pm
Powered by Dreamwidth Studios