Алогоритм подбора числа такой чтобы давал конечную дробь (с заданным n знаков) при этом число обратное полученной дроби должно быть конечной дробью? нужно подобрать число от 0 до 1 такое чтобы оно было конечной дробью при этом обратное число также должно являться конечной дробью с заданным количеством разрядов ( в приведенной табличке 8 таких чисел) .
в екселе простой подбор ограничен количеством строк таблички 2^16 так что шаг итерации получается предел 0,0001
вот при этом шаге итерации из 10000 строк получается такой набор чиселшаг проц обратное округл до 5 знаков
0,0001 0,9999 1,0001000100010000000000000 1,0001000000000000000000000
0,0002 0,9998 1,0002000400080000000000000 1,0002000000000000000000000
0,0003 0,9997 1,0003000900270100000000000 1,0003000000000000000000000
0,0004 0,9996 1,0004001600640300000000000 1,0004000000000000000000000
0,0005 0,9995 1,0005002501250600000000000 1,0005000000000000000000000
0,0006 0,9994 1,0006003602161300000000000 1,0006000000000000000000000
0,0007 0,9993 1,0007004903432400000000000 1,0007000000000000000000000
0,0031 0,9969 1,0031096398836400000000000 1,0031100000000000000000000
0,0032 0,9968 1,0032102728731900000000000 1,0032100000000000000000000
0,2 0,8 1,2499999999999900000000000 1,2500000000000000000000000
0,9142 0,0858 11,6550116550002000000000000 0,116550002
посоветуйте готовый алгоритм
ексель, питон, желательно

21 Авг 2019 в 06:05
198 +1
0
Ответы
1

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

def find_fraction(n):
for i in range(1, 10**n):
num = i / (10**n)
if is_finite(num) and is_finite(1.0 / num):
return num
def is_finite(x):
return x.as_integer_ratio()[1] == 1
n = 8
result = find_fraction(n)
print(round(result, n))
print(round(1.0 / result, n))

Этот код найдет число от 0 до 1, которое будет иметь конечную дробь с n разрядами, и обратное данному числу также будет иметь конечную дробь с n разрядами.

20 Апр в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 89 890 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир