| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [С++] Факториал 2000! |
| Автор: ДобренькийПапаша 17.11.2006, 20:23 |
| Вычислить точное значение выражения 2000! (две тысячи факториал). Нужно вывести на экран точное значение, это где-то несколько тысяч знаков вроде бы. Как сделать не понимаю. Можно через char, реализовать пробовал, но не получается, так как я ещё пока нуб |
| Автор: Kuvaldis 17.11.2006, 21:07 | ||
| ДобренькийПапаша, сначала проверил в Виндозном калькуляторе:
Потом запустил программу со своим классом длинных чисел для вычисления факториала ответ по данным знакам сошелся (хотя их намного больше, и ненулевых), что дает возможность предполагать, что нашлось все правильно... правда, долго искало, минут 10 Но если поиск представления нужен для каких-то целей, где время не очень критично, то... |
| Автор: Kuvaldis 17.11.2006, 21:31 |
| Если закомментировать вывод на каждом шаге очередного факториала, то время с 10 минут уменьшается до вполне приемлемых 18 секунд |
| Автор: maxim1000 17.11.2006, 21:31 |
полу-оффтопик: где-то (вроде Алголист) было описание такого подхода: умножение длинных сводится к свёртке свёртка - к перемножению Фурье-образов а суть в том, что вместо n^2 мы получаем n*log n правда, сам не пробовал |
| Автор: Kuvaldis 17.11.2006, 22:40 | ||
Void,
Вот так вот сразу и серпом по ... горлу. А если серьезно, ты бы не мог хорошую (!) ссылочку дать по этой теме, где понятно написано для лица, "не обезображенного интеллектом"? (т.е. где не слишком сложно) Добавлено @ 22:42 Кстати, поздравляю тебя с двухлетием пребывания на форуме |
| Автор: Void 17.11.2006, 22:59 |
| Kuvaldis, да тут уже на http://algolist.manual.ru/maths/longnum.php ссылались, вроде довольно понятно написано. Я лично понял связь между преобразование Фурье и умножением длинных чисел из http://www.cse.ucsd.edu/~dasgupta/mcgrawhill/ книги. |