|
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
|
||||||
Найти наибольший общий делитель двух чисел Фибоначчи14.08.2015, 20:53. Показов 11260. Ответов 33
Метки нет (Все метки)
Добрый вечер, решаю задачу, ошибка на шестом тесте. Условии задачи:
Кликните здесь для просмотра всего текста
Последовательностью Фибоначчи называется последовательность чисел F0 = 0, F1 = 1, … , Fk = Fk-1 + Fk-2 (k > 1).
Требуется найти наибольший общий делитель двух чисел Фибоначчи. Входные данные Во входном файле INPUT.TXT записаны два целых числа i и j (1 ≤ i, j ≤ 10 в 6-й степени). Выходные данные В выходной файл OUTPUT.TXT выведите остаток от деления НОД чисел Fi и Fj на 10 в 9-й степени. Шестой тест: 893854 102938 Мой код:
0
|
||||||
| 14.08.2015, 20:53 | |
|
Ответы с готовыми решениями:
33
Найти наибольший общий делитель двух чисел Фибоначчи
Найти наибольший общий делитель двух чисел |
| 14.08.2015, 21:09 | |||||||||||
0
|
|||||||||||
| 14.08.2015, 21:12 | |
|
1) Твой GCD медленно работает: нужно заменить вычитание на взятие остатка (если пользоваться пунктом 2 - то можно и не менять)
2) Насколько я помню, GCD(Fn, Fm) = FGCD(n, m) 3) Fn, где n = 10^6 - это много. Выйдем за пределы типа при вычислении Fn. Решение: пользуясь пунктом 2, находим номер числа Фибоначчи. Причем, при вычислении этого числа нужно брать остаток от деления на 10^9. (т.е. f[n] = (f[n-1] + f[n-2]) % 1000000000
1
|
|
|
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
|
||
| 14.08.2015, 23:37 [ТС] | ||
|
Добавлено через 9 минут GCD(Fn, Fm) = FGCD(n, m) - Можете расшифровать формулу?
0
|
||
| 14.08.2015, 23:43 | ||
|
0
|
||
|
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
|
||
| 14.08.2015, 23:48 [ТС] | ||
|
0
|
||
| 14.08.2015, 23:49 | |
|
Не по теме: Melvil, я просто глупо и неуместно пошутил :) Но оратор выше дал вам достаточно информации.
0
|
|
|
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
|
||||||
| 15.08.2015, 00:39 [ТС] | ||||||
|
Окей, использую формулу, сейчас то где ошибка?:
Шестой тест: 893854 102938 Мой код:
Даже при вводе 7 и 7 - аварийное завершение работы. Добавлено через 2 минуты Странно, если использую алгоритм Евклида с делением, то происходит деление на ноль, если нет - то всё в порядке. Добавлено через 17 минут При использовании больших чисел: 893854 102938 Выдаёт единицу, хотя должна быть двойка, как минимум.
0
|
||||||
|
|
|||||||
| 15.08.2015, 00:43 | |||||||
|
Melvil,
Добавлено через 53 секунды
0
|
|||||||
|
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
|
||
| 15.08.2015, 00:49 [ТС] | ||
![]() Добавлено через 3 минуты Kerry_Jr, У вас первый тест не проходит: 10 и 5 - ответ должен быть пять. Я склоняюсь к тому, что числа Фибоначчи стоит начинать считать с единицы, а не с нуля.
0
|
||
|
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
|
|
| 15.08.2015, 00:51 [ТС] | |
|
Исправленная версия также точно стопорится на шестом тесте, т.к. формула то выдаёт один, вместо двух.
0
|
|
|
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
|
|
| 15.08.2015, 00:52 [ТС] | |
|
0
|
|
|
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
|
|||
| 15.08.2015, 00:54 [ТС] | |||
|
Добавлено через 1 минуту Т.е. Fnod(m,n) % 1000000000
0
|
|||
|
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
|
|||||||
| 15.08.2015, 01:33 [ТС] | |||||||
|
Добавлено через 1 минуту Судя по всему, не хватает размера int'a Добавлено через 13 минут Собственно говоря, с использованием данной формулы всё вроде бы встаёт на свои места без всяких long int'ov, только вот неверный ответ почему-то. Добавлено через 16 минут Могу точно сказать, что программа работает верно, видимо с тестом что-то не то. Всем спасибо!
0
|
|||||||
| 15.08.2015, 09:11 | |
|
Что за глупость - в алгоритме Евклида отнимать от большего меньшее (вместо взятия остатка).
Если большее 2^63 (или 2^100 при использовании длинной арифметики), а меньшее 1, то сколько надо времени?Это же надо так испоганить эффективный алгоритм нахождения НОДа.
0
|
|
| 15.08.2015, 09:11 | |
|
Помогаю со студенческими работами здесь
20
Найти наибольший общий делитель двух чисел
Найти наибольший общий делитель двух натуральных чисел
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|