Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2013, 05:23   #31
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Спасибо, я почувствовал себя овощем )
у меня получилось в продолжение моего предыдущего решения, лишь предел для x опеределить (по китайской теореме об остатках выходит что x не больше B*B) но тут и сложность смахивает на квадратичную и точных значений нет...).

Последний раз редактировалось rrrFer; 25.01.2013 в 05:29.
rrrFer вне форума Ответить с цитированием
Старый 25.01.2013, 07:46   #32
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от rrrFer
я почувствовал себя овощем
Ну и зря. Я вот понятия не понял о чем тут речь
Цитата:
Сообщение от rrrFer
по китайской теореме об остатках выходит ...
Ну а по этой самой теореме что получается при В>1?
Цитата:
сложность смахивает на квадратичную и точных значений нет...
Точных нет. А точнее - нет конкретных. Для определенной длины списка существует, я так понимаю, min и max сложности. Конкретное значение зависит от отношения A/B.

И последнее, rrrFer вообще не советовал бы мои математические выкладки принимать на веру. Я и сам-то в их правильности не уверен. Хотел лишь передать ход мыслей.
Sibedir вне форума Ответить с цитированием
Старый 25.01.2013, 10:42   #33
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Ну а по этой самой теореме что получается при В>1?
Цитата:
A = nB-x
т.е. у тебя вышло x = nB - A;
по теореме (если я ее верно исопльзовал) вышло
х < (B*B - (A mod B)) / 2
вобщем сложность квадратичная, а значит, если подставить в то, что вышло у тебя, в худшем случае n = B (т.е. второму (быстрому) указателю в худшем случае придется сделать B циклов.

Цитата:
Я и сам-то в их правильности не уверен.
но я тоже неуверен в своих )
rrrFer вне форума Ответить с цитированием
Старый 25.01.2013, 12:45   #34
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

У меня x - это число шагов сделанных медленным указателем по циклу (от начала цикла до того места, где быстрый его догнал). Привожу схему. Немного откорректировал ИД для удобства расчетов. Теперь B = N-A+1
Схема 1.jpg
И вот этот х не может быть вольше B, ну ни как. Ведь с момента, когда М зашёл в цикл, расстояние м/y М и Б с каждым ходом начнет уменьшаться на 1 --->
Б не сможет "нерепрыгнуть" ч/з М --->
X < B (X=0 когда А кратно В)
Вот в этом выводе я уверен на 100%

Что же касается n.
путь Б = 2 * путь М
A+nB+x = 2(A+x)
n = (A+x)/B
n = A/B + x/B
т.к. x/B < 1
n = A/B - при A кратном B
n = (A div B) + 1 - иначе

Последний раз редактировалось Sibedir; 25.01.2013 в 12:51.
Sibedir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связанный список Лжец Общие вопросы C/C++ 2 12.12.2011 23:42
Связанный список на СИ maryan.vetrov Общие вопросы C/C++ 6 18.10.2010 08:49
Связанный список (Linked list). lnter Помощь студентам 0 12.04.2010 17:58
База данных. Связанный список. 4uJIaBekTonop C/C++ Базы данных 3 29.12.2009 10:42