Алогоритм подбора числа такой чтобы давал конечную дробь (с заданным 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
235 +1
0
Ответы
1

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

def find_fractionnnn:
for i in range1,10∗∗n1, 10**n1,10n:
num = i / 10∗∗n10**n10n if is_finitenumnumnum and is_finite1.0/num1.0 / num1.0/num:
return num
def is_finitexxx:
return x.as_integer_ratio111 == 1
n = 8
result = find_fractionnnn printround(result,n)round(result, n)round(result,n) printround(1.0/result,n)round(1.0 / result, n)round(1.0/result,n)

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

20 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир