![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Гость |
![]()
Сообщение
#1
|
Гость ![]() |
Вот недавно встертил интересную задачку:
Нужно вывести последние 40 цифр n-ого числа фибонначи, где n<10^18, вот и все |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Гость , я думаю вам поможет FAQ : Длинная арифметика, числа > LongInt
Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
я думаю вам поможет Длинная арифметика klem4, тут дело не в этом. Или не совсем в этом. Я уже второй день думаю над этой задачей.. Первое поползновение - прикинуть количество операций для расчета 10^18-го числа Фибоначи. Собственно, тут и прикидывать не надо. Положим, что на сложение двух предыдущих уходит один цикл (что явно неверно для длинной арифметики, но это есть оценка снизу). Далее, берем машину, работающую на 3 ГГц. В час она выполнит 10^9*3*3600 сложений, что приблизительно есть 10^13. Получается, что нужно 10^5 часов. Будем считать, что в году 10000 часов (приблизительно). И получится, что на расчеты нам потребуется 10 лет.. А на длинную арифметику нужно как минимум десятку накинуть! Сто лет.. Но самое интересное не в этом. На хранение одного только последнего числа уйдет количесво памяти, сравнимое с произведенным на данный момент на всей Земле.. ![]() Конечно, можно считать только последние 40 знаков, тогда вопрос с памятью отпадает, но вопрос с временем остается.. Я долго думал, и придумал, что должна быть периодичность в младших разрядах. Стал вычислять - и действительно ее обнаружил. Но только это не решает проблемы, поскольку период растет медленно.. Будем думать дальше! ![]() Разделено в отдельную тему, т.к. в ПЕРВОМ ЖЕ ПОСТЕ прикрепленной темы русским языком написано: Цитата Внимание! В этой теме публикуем только сами задачи и их решения... Обсуждения - в отдельных темах!!! Сообщение отредактировано: volvo - -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 7.09.2025 14:29 |