Да-да, точность до константы - это замечательная идея :) Быстро и бесполезно.
В своё время меня шокировало, что существует целая ветка математики, занимающаяся оценками "с точностью до мультипликативной константы" - Колмогоровская сложность. И только несколько лет спустя до меня стало доходить, что ведь и из таких в принципе невычислимых эфемерностей можно какую-то пользу извлечь.
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 - всё, работает.
Ох и досталось мне от молодых, http://www.gamedev.ru/flame/forum/?id=85919&page=20 даже за то, что в калькуляторе с инфолиофакториалом (для любых положительных, но не = Г(х) использовал для обратного факториала ?, а не перевернутый восклицательный знак! Мнемоника простая- знак ? съедает знак ! (Правда, из ВИКИ это почему-то удалили). 120?= (120/1/2/3/4)!?=5 И о скорости вычислений там рассуждали. Вопрос, до каких величин это актуально. 256! и, соответственно 256!? устроит?
Но мне вполне понятно, почему из Википедии удаляют такие вещи. Идея может быть сколь угодно правильной, интуитивно удобной, и т.д., но в Википедии (по крайней мере, в её англоязычном варианте) есть правило: в Википедию помещаются только статьи на устоявшиеся факты, а не на т.н. "original research". Поэтому не стоит обижаться :)
Извиняюсь. Вот на http://dic.academic.ru/dic.nsf/ruwiki/8486 (Словари и энциклопедии на Академике) осталось еще "Обратный факториал — (Перенаправлено с Обратные Задачи на факториал) Текущая версия (не проверялась) Связать? Обратный факториал числа N ! (обозначение: !?) определяется как число, факториал которого ! и есть исходное число. Название обратный… (Википедия)"
no subject
Гамма функция и всё такое :)
Может её обратить можно?
no subject
Блин. И ж ведь символа специального тоже нет... - я хотел разыскать перевёрнутое испанское восклицание, но заблудся в Юникоде :)
no subject
Он вообще был в IBMовском "расширеном ASCII", то есть в превых 256 символах :)
А факториал, на сколько я заню, можно считать или точно, или быстро.
Обратный факториал, я думаю, точно должен считаться для целых чисел через оценку с последующей проверкой.
no subject
"дёшево, быстро, качественно - зачеркните любое слово" :)
ну что Вы
Re: ну что Вы
В своё время меня шокировало, что существует целая ветка математики, занимающаяся оценками "с точностью до мультипликативной константы" - Колмогоровская сложность. И только несколько лет спустя до меня стало доходить, что ведь и из таких в принципе невычислимых эфемерностей можно какую-то пользу извлечь.
no subject
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 - всё, работает.
no subject
no subject
Сейчас проверил - если ещё 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
ну и так далее. Ошибка маленькая, но что-то в обозримом настоящем не очень останавливается.
Обратный факториал
даже за то, что в калькуляторе с инфолиофакториалом (для любых положительных, но не = Г(х) использовал для обратного факториала ?, а не перевернутый восклицательный знак!
Мнемоника простая- знак ? съедает знак ! (Правда, из ВИКИ это почему-то удалили).
120?= (120/1/2/3/4)!?=5 И о скорости вычислений там рассуждали. Вопрос, до каких величин это актуально. 256! и, соответственно 256!? устроит?
Re: Обратный факториал
Но мне вполне понятно, почему из Википедии удаляют такие вещи. Идея может быть сколь угодно правильной, интуитивно удобной, и т.д., но в Википедии (по крайней мере, в её англоязычном варианте) есть правило: в Википедию помещаются только статьи на устоявшиеся факты, а не на т.н. "original research". Поэтому не стоит обижаться :)
no subject
"Обратный факториал — (Перенаправлено с Обратные Задачи на факториал) Текущая версия (не проверялась) Связать? Обратный факториал числа N ! (обозначение: !?) определяется как число, факториал которого ! и есть исходное число. Название обратный… (Википедия)"