|
1 / 1 / 0
Регистрация: 24.06.2016
Сообщений: 143
|
|
Написать программу, определяющую период дроби26.06.2016, 14:34. Показов 6673. Ответов 49
Метки нет (Все метки)
Любое рациональное число представляется в виде бесконечной десятичной периодической дроби. Написать программу, определяющую период дроби n / m, где n и m – натуральные числа.
0
|
|
| 26.06.2016, 14:34 | |
|
Ответы с готовыми решениями:
49
Определить период дроби
|
| 17.12.2024, 21:57 | ||||
|
Не по теме:
0
|
||||
|
2469 / 1615 / 741
Регистрация: 17.03.2022
Сообщений: 5,266
|
||
| 17.12.2024, 22:13 | ||
0
|
||
| 17.12.2024, 23:40 | |
|
0
|
|
|
Вездепух
13211 / 6844 / 1824
Регистрация: 18.10.2014
Сообщений: 17,322
|
|||||||||||
| 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
|
|||||||||||
|
Вездепух
13211 / 6844 / 1824
Регистрация: 18.10.2014
Сообщений: 17,322
|
||
| 18.12.2024, 07:09 | ||
|
Доступность памяти в данном случае держится на корректности математических вычислений, на основе которых был вычислен размер выделенного блока. Никаких сомнений в правильности этого математического аппарата у меня нет (см. сообщение #44). Если они есть у вас - пожалте их в студию. А я произвожу лишь отладочные sanity checks на основе assert. В частности, последний assert (строка 57), проверяет, что вычисленный размер точен до символа.Придраться можно только к тому, что я не проверяю успешность malloc. Но это всем и так понятно. Оставлено читателю в качестве упражнения.
1
|
||
|
Вездепух
13211 / 6844 / 1824
Регистрация: 18.10.2014
Сообщений: 17,322
|
||
| 18.12.2024, 08:11 | ||
|
В предыдущих вариантах (включая мой и ваш) у нас вообще не было такой возможности, ибо тот способ расчета длины периода требовал хранения остатков. А для них уже требовалась память заранее неизвестного размера.
1
|
||
|
Вездепух
13211 / 6844 / 1824
Регистрация: 18.10.2014
Сообщений: 17,322
|
|||||||
| 19.12.2024, 18:03 | |||||||
a, конечно, есть. Результат является конечной дробью не только когда редуцированное b равно 1, а всегда, когда a делится на редуцированное b. Это тоже нужно учитывать, если вы не хотите, чтобы 3/6 превращалось в 0.5(0)
0
|
|||||||
| 19.12.2024, 18:03 | |
|
Составьте программу, определяющую период десятичной дроби Составить программу, которая для натуральных чисел m и n вычисляет период десятичной дроби m/n
Период у дроби Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|