- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
var a = [1,2,3,4,5,6,7,8,9];
document.write('1' + '!='+ a[0] + '<br>');
document.write('2' +'!=' + a[0] * a[1] + '<br>');
document.write('3' +'!=' + a[0] * a[1] * a[2] + '<br>');
document.write('4' +'!=' + a[0] * a[1] * a[2] * a[3] + '<br>');
document.write('5' +'!=' + a[0] * a[1] * a[2] * a[3] * a[4] + '<br>');
document.write('6' +'!=' + a[0] * a[1] * a[2] * a[3] * a[4] * a[5] + '<br>');
document.write('7' +'!=' + a[0] * a[1] * a[2] * a[3] * a[4] * a[5] * a[6] + '<br>');
document.write('8' +'!=' + a[0] * a[1] * a[2] * a[3] * a[4] * a[5] * a[6] * a[7] + '<br>');
document.write('9' +'!=' + a[0] * a[1] * a[2] * a[3] * a[4] * a[5] * a[6] * a[7] * a[8] + '<br>');
- Не кричите на меня.
Бонусом идёт расширение вообще на все числа >0.Кроме него самого
Дык не хуже чем у автора, у него тоже только до 9 считает.
Для любителей отрицательной области определения
Теперь на отрицательных честные бесконечности, а не плавающие питухи.
Кстати я тут вывел эмпирическим путём охуенный однострочник факториала для всех действительных, но даже сам не до конца понимаю почему получается такое точное приближение.
PS> Прошлое было "асимптотическим" в обоих смыслах, и по сложности, и по уменьшению погрешности на пути в бесконечность.
Всмысле? Не надо мыслить дискретно.
Оно дробные очень точно считает.
>Math.exp(Math.log(f(n-1)) + Math.log(n))
Зачем?
Там выделенная часть не просто так, в ней вся соль.
Я сначала пробовал Math.pow(2,n-1), но потом заметил что разница между n! и Math.pow(2,n-1) практически такая же как между Math.pow(2,n-1) и n.
А сравнивал с гамма-функцией?
Я искал короткую и простую формулу, которая на диапазоне (желательно [1;2]) практически равна ей.
Оказалось оно очень похоже на участке [0;2], что вообще замечательно, а дальше дело техники.
Не знаю, может можно и точнее.