Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача на квадратичные иррациональности, вычисление периода бесконечной дроби 
:(
    Опции темы
xctepx
Дата 24.5.2006, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2005

Репутация: нет
Всего: нет



Помогите с такой задачей : 
"Представить квадратичную иррациональность в виде бесконечной периодической дроби". Здесь кв. иррациональность = (A + B * Sqrt©) / D. Проблема состоит в том, что надо реализовать быстрый способ нахождения периода, т.к. пользуясь стандартным (когда вычисляешь сам), прога зависает. В системе Mathematica реализована функция ContinuedFraction, которая раскладывает квадратичную иррациональность в дробь с периодом в 3000 чисел буквально  в 3-5 секунд! Там в доке говорится, что использовался модифицированный метод Лемера. Если кто-нибудь знает что-то по этому поводу, большая просьба ответить.
Заранее благодарен. 
PM MAIL   Вверх
MBo
Дата 24.5.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 10.6.2002

Репутация: 5
Всего: 18



Хм... Иррациональные числа непредставимы точно в виде периодической дроби.
Может, речь идет о цепной дроби типа a0 +1/(1+a1/(1+a2/(...))) ? 
PM MAIL   Вверх
xctepx
Дата 24.5.2006, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2005

Репутация: нет
Всего: нет



Да, именно о ней. И проблема состоит в том, как быстро вычислить период. (Остальное уже сам сделал) 
PM MAIL   Вверх
drkot
Дата 24.5.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



А самто искать пытался?

 


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
nostromo
Дата 25.5.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



Цепные дроби и уравнение Пелля (и будет счастье).

http://www.mccme.ru/mmmf-lectures/books/bo...book.14.pdf.zip
http://www.mccme.ru/mmmf-lectures/books/bo...book.13.pdf.zip 
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
esperant0
Дата 25.5.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(nostromo @ 25.5.2006,  09:24)
Цепные дроби и уравнение Пелля (и будет счастье).

http://www.mccme.ru/mmmf-lectures/books/bo...book.14.pdf.zip
http://www.mccme.ru/mmmf-lectures/books/bo...book.13.pdf.zip

если не секрет, как уравнение пеля связанно с определением периода цепной дроби:? 


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
nostromo
Дата 25.5.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



Уравнение Пелля (p^2 - n* q^2 == 1) по сути и есть квадратическая иррациональность. Решить уравнение Пелля --- значит найти некоторое приближение к sqrt{n}, причем эффективный алгоритм связан с построением цепной  дроби.
Известно также, что цепная дробь является периодической тогда и только тогда, когда она  является представлением квадратической иррациональности.
В методичках все есть... 
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
xctepx
Дата 25.5.2006, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2005

Репутация: нет
Всего: нет



Большое спасибо! Но мой вопрос состоял в том, что нужен БЫСТРЫЙ поиск соответствующей бесконечной периодической цепной дроби! 
PM MAIL   Вверх
nostromo
Дата 26.5.2006, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



Почитайте указанные книжки внимательнее. 
Если я все равильно понял,  Ваше выглядит так: A+B*sqrt(D), и можно предложить примерно следующий алгоритм:

1. Ищем решение уравнения Пелля для числа B^2 * D (строим цепную дробь для числа B * sqrt(D)). Эффективный алгоритм построения цепной дроби --- это алгоритм "вытягивания носов" в брошюре о цепных дробях.

2. Найденное решение уравнения Пелля гарантирует, что найден период соответствующей цепной дроби. Это следует из рекурсивных соотношений для решений уравнения Пелля.

3. Прибавляем к цепной дроби константу A и получаем ответ. 
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
xctepx
Дата 26.5.2006, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2005

Репутация: нет
Всего: нет



Ещё раз большое спасибо за ответ! Уже всё готово! И работает! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0498 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.