Нерациональное представление чисел в компьютере - PullRequest
3 голосов
/ 20 декабря 2011

Мы можем написать простой класс Rational Number, используя два целых числа, представляющих A / B с B! = 0.

Если мы хотим представить класс иррациональных чисел (хранение и вычисление), первое, что пришло кмой разум - использовать плавающую точку, что означает использование стандарта IEEE 754 (двоичная дробь).Это потому, что иррациональное число должно быть аппроксимировано.

Есть ли другой способ написать класс иррациональных чисел, кроме использования двоичной дроби (сохраняют ли они пространство памяти или нет)?

Я изучал решение jsbeuno с использованием Python: Представление иррациональных чисел влюбой язык программирования?

Он все еще использует встроенную функцию с плавающей запятой для хранения.

Это не домашняя работа .

Спасибо за потраченное время.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2011

jsbeuno хранит число как основание и основание и использует их при выполнении вычислений с другими иррациональными числами; он использует только представление с плавающей точкой для вывода.

Если вы хотите стать более любопытным, вы можете определить основание и основание как рациональные числа (с двумя целыми числами), как описано выше, или сделать их самими иррациональными числами.

Однако, чтобы сделать что-то очень полезное, вы в конечном итоге будете копировать символический математический пакет.

0 голосов
/ 20 декабря 2011

С аргументом кардинальности иррациональных чисел гораздо больше, чем рациональных. (и число чисел с плавающей точкой IEEE754 конечно, вероятно, меньше чем 2 ^ 64).

Вы можете представлять числа чем-то, кроме дроби (например, логарифмически).

...