предположив У меня есть десятичное какалгоритм для преобразования десятичных чисел дроби выражение
0.30000000000000027
Что бы лучший алгоритм, чтобы знать то же самое число выражается в виде дроби Так, при определенных x
найти y
, что удовлетворяет x=1/y
в с или Haskell
Я думал
1/3> 0.30 >1/4
Итерация влево и правая сторона сезам один из них сходится и >
становится =
поэтому первая итерация будет выглядеть
1/1 > 0.30000000000000027 > 1/somethinghere
1/2 > 0.30000000000000027 > 1/increase or decrease this
1/3 > 0.30000000000000027 ...
Я хочу уточнить, что я мог бы легко сделать
0.30000000000000027 = 30000000000000027/ 10^17
, но я хочу сделать
0.30000000000000027 = 1/x
В c или haskell
Не все числа могут быть выражены, например, 0,8 = 4/5. – Koterpillar
да, но если алгоритм не сходится, то у меня есть номер с этим качеством. – cMinor
Тогда вам просто нужен алгоритм упрощения фракций, см., Например, http://stackoverflow.com/questions/7777142/how-to-simplify- фракция. – Koterpillar