|
1 / 1 / 0
Регистрация: 24.06.2016
Сообщений: 143
|
|
Написать программу, определяющую период дроби26.06.2016, 14:34. Показов 6552. Ответов 49
Метки нет (Все метки)
Любое рациональное число представляется в виде бесконечной десятичной периодической дроби. Написать программу, определяющую период дроби n / m, где n и m – натуральные числа.
0
|
|
| 26.06.2016, 14:34 | |
|
Ответы с готовыми решениями:
49
Определить период дроби
|
| 17.12.2024, 21:57 | ||||
|
Не по теме:
0
|
||||
|
2446 / 1589 / 738
Регистрация: 17.03.2022
Сообщений: 5,151
|
||
| 17.12.2024, 22:13 | ||
0
|
||
| 17.12.2024, 23:40 | |
|
0
|
|
|
Вездепух
13205 / 6840 / 1822
Регистрация: 18.10.2014
Сообщений: 17,302
|
|||||||||||
| 18.12.2024, 02:04 | |||||||||||
|
Однако, возможно, разговор пошел совсем не о той задаче. "Определить период" может означать, что ТСу нужно лишь найти длину периода, а не напечатать его десятичное разложение. Длина периода - это совсем другая задача из теории чисел.
Длина периода зависит только от знаменателя b. Чтобы найти длину периода, нужно избавить b от факторов 2 и 5, а затем просто найти наименьшее p, для которого 10p = 1 (mod b). И все.
b итераций приведенного цикла (после избавления b от факторов 2 и 5). Для основания 10 её, насколько я знаю, можно решить и более эффективно.(Учитывая, что степени 10 и препроцессированное b являются взаимно простыми числами, вышеприведенному соотношению будет удовлетворять значение Функции Эйлера для b. Однако Функция Эйлера не гарантирует минимальности такого значения, а нам нужно именно минимальное.)Добавлено через 36 минут Степени факторов 2 и 5 в исходном значении знаменателя определяют длину непериодического префикса десятичного представления. Прикрутив все это к алгоритму генерации десятичного разложения, мы получим то, что мы делали выше, но уже без необходимости хранить и перебирать остатки. Вот вариант формирования строкового представления, основанный на этом принципе. Никакого хранения (и перебора) остатков, единственное выделения памяти (нет переаллокации):
1
|
|||||||||||
|
Вездепух
13205 / 6840 / 1822
Регистрация: 18.10.2014
Сообщений: 17,302
|
||
| 18.12.2024, 07:09 | ||
|
Доступность памяти в данном случае держится на корректности математических вычислений, на основе которых был вычислен размер выделенного блока. Никаких сомнений в правильности этого математического аппарата у меня нет (см. сообщение #44). Если они есть у вас - пожалте их в студию. А я произвожу лишь отладочные sanity checks на основе assert. В частности, последний assert (строка 57), проверяет, что вычисленный размер точен до символа.Придраться можно только к тому, что я не проверяю успешность malloc. Но это всем и так понятно. Оставлено читателю в качестве упражнения.
1
|
||
|
Вездепух
13205 / 6840 / 1822
Регистрация: 18.10.2014
Сообщений: 17,302
|
||
| 18.12.2024, 08:11 | ||
|
В предыдущих вариантах (включая мой и ваш) у нас вообще не было такой возможности, ибо тот способ расчета длины периода требовал хранения остатков. А для них уже требовалась память заранее неизвестного размера.
1
|
||
|
Вездепух
13205 / 6840 / 1822
Регистрация: 18.10.2014
Сообщений: 17,302
|
|||||||
| 19.12.2024, 18:03 | |||||||
a, конечно, есть. Результат является конечной дробью не только когда редуцированное b равно 1, а всегда, когда a делится на редуцированное b. Это тоже нужно учитывать, если вы не хотите, чтобы 3/6 превращалось в 0.5(0)
0
|
|||||||
| 19.12.2024, 18:03 | |
|
Помогаю со студенческими работами здесь
50
Составьте программу, определяющую период десятичной дроби Составить программу, которая для натуральных чисел m и n вычисляет период десятичной дроби m/n
Период у дроби Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|