![]() |
|
![]() ![]() ![]() |
|
MBo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 5 Всего: 18 |
>Вы его тестировали?
Ну да. Вот пример выдачи:
+- - т.к. вычисляется модуль отклонения 19 = 16 (4*4) +- 3 71 = 64 (8*8) +- 7 99 = 100 (10*10) +- 1 60 = 64 (8*8) +- 4 53 = 49 (7*7) +- 4 96 = 100 (10*10) +- 4 100 = 100 (10*10) +- 0 82 = 81 (9*9) +- 1 97 = 100 (10*10) +- 3 58 = 64 (8*8) +- 6 53 = 49 (7*7) +- 4 |
|||
|
||||
nostromo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 5 Всего: 10 |
Да, сумма последовательных нечетных пробегает все квадраты. Каюсь, не разглядел.
--------------------
На пыльных тропинках далеких планет останутся наши следы. |
|||
|
||||
tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: нет Всего: 8 |
Да, я в формуле ошибся.
0, 1 1*2-0+2=4 4*2-1+2=9 9*2-4+2=16 16*2-9+2=25 .......... и так далее всё правда. X[i-1]*2-X[i-2]+2=X[i] |
|||
|
||||
MBo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 5 Всего: 18 |
tishaishii, ты скажи, для чего это нужно, а то вот еще целочисленный алгоритм с 16 оборотами цикла (а не Sqrt(N))
![]()
|
|||
|
||||
tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: нет Всего: 8 |
А можно что-нибудь с вышеприведённой формулой замутить?
Мне кажется, что для моей задачи div использовать противопоказано. Вообще, как он в Delphi работает, этот div? Я думаю, подбором. Да, уточню. Мне надо найти ближайшее квадратичное число, которое не больше данного (т.е. остаток всегда положительный). Ну вот ещё одна формула: (k(n)^(2*m)) mod (n-1)=0, я думаю, она тоже имеет прямое отношение к этой задаче. |
|||
|
||||
nostromo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 5 Всего: 10 |
Скорее всего вчисления div займет 2 такта процессора (советую познакомиться с его базовым набором команд). --------------------
На пыльных тропинках далеких планет останутся наши следы. |
|||
|
||||
tishaishii |
|
||||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: нет Всего: 8 |
n - это система счисления такая.
MBo, ты не поверишь, мне это нужно как раз для того, о чём я уже рассказал в первом посте ![]() Я буду работать с огромными числами (десятичная запись которых занимает мегабайты). Это вычисление - часть алгоритма. Добавлено @ 16:38
Ну как оно работает? Два такта никак занять не сможет, если div работает как и деление /, т.к. деление / до сих пор происходит подбором. Интересно знать формулу div (именно ту, по которой действует процессор). |
||||
|
|||||
nostromo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 5 Всего: 10 |
P.S. В дельфи есть возможность просмотра дизассемблерного листинга и, скорее всего, можно найти профайлер.
Добавлено @ 16:54
Сейчас уточнил. Не пару тактов, но довольно мало: idiv Это сообщение отредактировал(а) nostromo - 24.4.2006, 16:54 --------------------
На пыльных тропинках далеких планет останутся наши следы. |
|||
|
||||
nostromo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 5 Всего: 10 |
Я знаю только одну возможную область применения таких вещей --- теория чисел и криптография, как ее приложение. Кстати, почему вы уцепились за перебор, ведь он по сути находит квадратный корень из числа (с точностью до 1), а от корня до квадратичного числа --- одно умножение? Замечу, что эффективный алгоритм извлечения квадратного корня связан с диофантовым уравнением Пелля. Не желаете рассказать о задаче поподробнее? ![]() Это сообщение отредактировал(а) nostromo - 24.4.2006, 17:08 --------------------
На пыльных тропинках далеких планет останутся наши следы. |
|||
|
||||
tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: нет Всего: 8 |
Моя задача связана исключительно с потешанием над числами и прочей математикой.
За страницу - спасиба. |
|||
|
||||
tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: нет Всего: 8 |
Ну так вопрос открыт.
|
|||
|
||||
Маг |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.7.2006 Репутация: нет Всего: нет |
![]() ПыСы как извлекать быстро корень не раскажеш?А то не могу найти нормального алгоритма без всяких трудностей в реализации ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |