период обыкновенной дроби (с++)
Период десятичной знаю как найти =) а вот как период обыкновенной.... не могу сообразить. Подскажите как? :)
Если ты поделишь..получиться десятичная дробь.... т.е. ты будешь находить период десятичной дроби х)) а по заданию нужно найти период обыкновенной дроби...
Или я чего то не понимаю... =\
Естественно угол сначала нормализуется, а лишь потом косинус раскладывается в ряд Тейлора. Аналогично у тебя в задании. И может я ни черта не понимаю в математике, но я ни разу не слышал понятия "период обыкновенной дроби"! Есть конечно вариант находить это период например в виде 2/3, в таком случае тебе необходимо опять же поделить их, потом убедиться что дробь периодическая, затем отбросить дробную часть, потом вычесть из числителя целую часть умноженую на знаменатель. Но вот только этот вопрос не коим образом не относиться к програмированию, а скорее к математике, класс пятый.=):D
а если длина периода окола 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-алгоритм (греческое ро).
Период десятичной знаю как найти =) а вот как период обыкновенной....
я исхожу из условия, что автор уже имеет алгоритм по нахождению периодов десятичных дробей! В смысле, не всякая дробь может быть представлена как десятичная?
Я имею ввиду непериодеческую бесконечную дробь (например число пи =)). Ее, как десятичную дробь, можно представить лишь с определенной точностью.
Для автора - дели m на n и запоминай остатки. Если будут найдены 2 одинаковых остатка - это и будет период.
Для автора - дели m на n и запоминай остатки. Если будут найдены 2 одинаковых остатка - это и будет период.
Просто внимательно прочитай что я написал -- в приведенной формуле m - делитель. А так совершенно верно, число остатков не может превысить m -1 и, при наличии периода, он определяется на последовательности длинной 2m - 2. Простой расчет =).
Вот и подумай, при значении делителя 2*10^8, какой это будет массив =)
Вот и подумай, при значении делителя 2*10^8, какой это будет массив =)
Действительно не прочитал, думал ты оперируешь формулой, которую привел автор :)
На сколько я понял автора - задача вычисления периода на больших числах не ставится. Обычная школьная/университетская задача. Так что, я думаю, вполне подойдет и массив ;)