![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
![]()
финальная версия
Код:
если так не получается - сначала у меня есть алгоритм возведения числа в степень со сложность o(nlgn) у меня есть алгоритм нахождения Sn числа "по модулю" пока забудем Соответственно S[n] =(n*n-4*n+6)*2^n-6. это смогу Ну а это число уже легко посчитать по модулю m. 2^n mod m считаем при помощи быстрого возведения в степень за O(lg n), а остальное напрямую. вот этот абзац подробнее можете расписать?
Программирование - это великое искусство... Такое же как например и живопись!
![]() Последний раз редактировалось Stilet; 23.11.2009 в 09:37. |
![]() |
![]() |
![]() |
#22 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
![]()
А самому никак? Действительно, я не даром говорил плохо о гуртках. Может и есть подготовка, но после гуртков нету "занимания программированием".
Попытаюсь объяснить максимально доходчиво. Итак, что сказано в этом абзаце? Для начала посчитаем первое выражение. Быстрое возведение в степень у Вас есть, и ошибки в нем были исправлены еще в одном из первых "финальных вариантов" (возможно, они там есть еще, но я их не вижу, а, так как я вижу другие причины того, что задача не решена, то искать ошибку там нету необходимоти. пока нету). Когда найдем значение, которое соответствует данному выражению, можем подставить его в конечную формулу вместо "куска со степенем". То, что получиться, можно считать и напрямую (Видимо, Дмитрий имел ввиду, что подходит обычная арфметика, без спецалгоритмов, как было с возведением в степень). Но по модулю, что бы не было переполнения. |
![]() |
![]() |
![]() |
#23 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
![]()
Итак, по порядку
Возведение в степень без переполнение есть два варианта I) Код:
II) Код:
тоже похоже на правду так? далее когда мы нашли 2^n (Stepen) мы подставляем в формулу получаем: Код:
Программирование - это великое искусство... Такое же как например и живопись!
![]() Последний раз редактировалось Stilet; 23.11.2009 в 09:37. |
![]() |
![]() |
![]() |
#24 | |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#25 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
![]() Код:
Код:
Программирование - это великое искусство... Такое же как например и живопись!
![]() Последний раз редактировалось Stilet; 23.11.2009 в 09:38. |
![]() |
![]() |
![]() |
#26 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
![]()
LeBron, lEbron.
Эту задачу даже отгуглить можно - если есть полное условие. Но Вы то его выложили не "на языке оригинала" или "на языке официального перевода". Решение... Хм, как сказать - не уверен, что я сдесь единственный, кто может такое решить. "Если прижмет", то такое под силу многим форумчанинам, хотя этот форум и немного другого уровня/направления. А "делать в свободное время" желающих нету. Отдебажить Ваш код смогут еще больше людей, чем написать с нуля. Только вот почему-то желающих нету. |
![]() |
![]() |
![]() |
#27 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
![]()
странно очень Lebron
я не прошу написать код, да и не просил я прошу пояснить до конца алгоритм то бишь нахождение непосредственно самого Sn-ого почему так это трудно сделать, что мешает, зачем нужно было так много сообщений, когда можно было сразу НОРМАЛЬНО написать разбор, я не понимаю? кстати если ввести максимальные данные то представленный Lebron'ом алгоритм не работает при n=10^9 и m=1 возникнет переполнение !
Программирование - это великое искусство... Такое же как например и живопись!
![]() Последний раз редактировалось Stilet; 23.11.2009 в 09:38. |
![]() |
![]() |
![]() |
#28 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
![]()
Алгоритм работает. Странно, как можно тестить авторское решение, не имея рабочего кода. При криворукой реализации - там не переполнение, а немного друкая фишка. Переполнения не может быть в принципе, даже при ограничениях в 2 миллиарда. Алгоритм я объяснил с самого начала. И Вы его поняли. Вернее, не знаю, поняли или нет, но быстренько списали последнюю формулу и побежали сдавать. А если Вы не умеете взять остаток по модулю и даже примерно не ориентируетесь в асимптотических оценках оверфлов-лимитов - это уже совсем другой разговор. Тут надо не алгоритм объяснять, а садиться и учиться программировать.
|
![]() |
![]() |
![]() |
#29 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
![]()
ненавижу вот этого
"тут нада садится и учится программировать" ну что за дела LeBron переполнение происходит - и выдается отрицательный результат, я понял это вот к чему пришел Код:
Программирование - это великое искусство... Такое же как например и живопись!
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body | tabikA | HTML и CSS | 5 | 24.02.2009 21:50 |
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах | mihali4 | Свободное общение | 1 | 17.01.2009 01:43 |
как "вычислить" шпиона? | roksalana | Безопасность, Шифрование | 42 | 06.09.2008 18:20 |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |