Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

период обыкновенной дроби (с++)

4.8K
22 июня 2008 года
anty
89 / / 29.10.2006
Определить период обыкновенной дроби m/n.

Период десятичной знаю как найти =) а вот как период обыкновенной.... не могу сообразить. Подскажите как? :)
307
22 июня 2008 года
Artem_3A
863 / / 11.04.2008
Прикинь, можно сначала поделить эти числа получив десятичную дробь, а потом найти период! Гениально, правда!?=)=)=)
4.8K
22 июня 2008 года
anty
89 / / 29.10.2006
ну ты гений, как я сразу до этого не додумался :D

Если ты поделишь..получиться десятичная дробь.... т.е. ты будешь находить период десятичной дроби х)) а по заданию нужно найти период обыкновенной дроби...

Или я чего то не понимаю... =\
307
23 июня 2008 года
Artem_3A
863 / / 11.04.2008
Как ты считаешь, как находить cos(123354) в той же библиотеки math.h?:cool:
Естественно угол сначала нормализуется, а лишь потом косинус раскладывается в ряд Тейлора. Аналогично у тебя в задании. И может я ни черта не понимаю в математике, но я ни разу не слышал понятия "период обыкновенной дроби"! Есть конечно вариант находить это период например в виде 2/3, в таком случае тебе необходимо опять же поделить их, потом убедиться что дробь периодическая, затем отбросить дробную часть, потом вычесть из числителя целую часть умноженую на знаменатель. Но вот только этот вопрос не коим образом не относиться к програмированию, а скорее к математике, класс пятый.=):D
361
23 июня 2008 года
Odissey_
661 / / 19.09.2006
Цитата: Artem_3A
Прикинь, можно сначала поделить эти числа получив десятичную дробь, а потом найти период! Гениально, правда!?=)=)=)


а если длина периода окола 100 цифр например ? =) не-не-не, так не пойдет. Не всякая обыкновенная дробь представима десятичной.

Что бы получить цифры p-представления (в нашем случае десятичное) правильной дроби k/m, умножай и дели с остатком. x1 = k*10 div m, r1 = k * 10 mod m, x2 = r1 * 10 div m, r2 = r1 * 10 mod m и т.д. Основная проблема здесь в том, что массим хранящий последовательность предыдущих остатков может быть очень большим (до 2m - 2). В этом случае можно использовать p-алгоритм (греческое ро).

307
23 июня 2008 года
Artem_3A
863 / / 11.04.2008
Цитата: anty

Период десятичной знаю как найти =) а вот как период обыкновенной....



я исхожу из условия, что автор уже имеет алгоритм по нахождению периодов десятичных дробей! В смысле, не всякая дробь может быть представлена как десятичная?

361
23 июня 2008 года
Odissey_
661 / / 19.09.2006
Цитата: Artem_3A
я исхожу из условия, что автор уже имеет алгоритм по нахождению периодов десятичных дробей! В смысле, не всякая дробь может быть представлена как десятичная?



Я имею ввиду непериодеческую бесконечную дробь (например число пи =)). Ее, как десятичную дробь, можно представить лишь с определенной точностью.

13K
23 июня 2008 года
specter
113 / / 28.09.2007
Odissey_, что-то я не могу понять один момент - почему ты считаешь, что количество различных остатков будет до 2m - 2? При делении на n количество остатков не может превысить n (число от 0 до n-1).

Для автора - дели m на n и запоминай остатки. Если будут найдены 2 одинаковых остатка - это и будет период.
361
23 июня 2008 года
Odissey_
661 / / 19.09.2006
Цитата: specter
Odissey_, что-то я не могу понять один момент - почему ты считаешь, что количество различных остатков будет до 2m - 2? При делении на n количество остатков не может превысить n (число от 0 до n-1).

Для автора - дели m на n и запоминай остатки. Если будут найдены 2 одинаковых остатка - это и будет период.



Просто внимательно прочитай что я написал -- в приведенной формуле m - делитель. А так совершенно верно, число остатков не может превысить m -1 и, при наличии периода, он определяется на последовательности длинной 2m - 2. Простой расчет =).

Вот и подумай, при значении делителя 2*10^8, какой это будет массив =)

13K
23 июня 2008 года
specter
113 / / 28.09.2007
Цитата: Odissey_
Просто внимательно прочитай что я написал -- в приведенной формуле m - делитель. А так совершенно верно, число остатков не может превысить m -1 и, при наличии периода, он определяется на последовательности длинной 2m - 2. Простой расчет =).

Вот и подумай, при значении делителя 2*10^8, какой это будет массив =)


Действительно не прочитал, думал ты оперируешь формулой, которую привел автор :)

На сколько я понял автора - задача вычисления периода на больших числах не ставится. Обычная школьная/университетская задача. Так что, я думаю, вполне подойдет и массив ;)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог