от
Большинство математиков согласны с тем, что: Эни 1 = 0 Однако, большинство плавающей точки реализаций не согласен. Как же мы можем уладить этот спор? Я хотел бы услышать о разных языках и реализаций, и различные методы, чтобы сделать результат как можно ближе к нулю, насколько это возможно. Быть творческим!

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

11 Ответы

0 голосов
от
Большинство математиков согласны с тем, что: Эни 1 = 0 Однако, большинство плавающей точки реализаций не согласен. Как же мы можем уладить этот спор? Я хотел бы услышать о разных языках и реализаций, и различные методы, чтобы сделать результат как можно ближе к нулю, насколько это возможно. Быть творческим!
0 голосов
от
Это не то, что большинство плавающих реализации пункта не согласен, это просто, что они не могут получить необходимую точность, чтобы получить 100% ответ. И правильный ответ заключается в том, что они не могут. ПИ-это бесконечный ряд цифр, которые никто не смог обозначить ничем иным, как символическим изображением, и E^X-это то же самое, и, таким образом, единственный способ получить на 100% точность, чтобы пойти символично.
0 голосов
от
Вот краткий список реализаций и языков, которые я пробовал. Это, отсортированные по близости к нулю: Схема:
(  1 (make


0.0 1.2246063538223773e ⇒ (ЧЗО Схема, Схема МИТ)
0.0 1.22460635382238e ⇒ (лукавства)
0.0 1.22464679914735e ⇒ (курица с яйцом numbers
)
0.0 1.2246467991473532e ⇒ (MzScheme, SISC, Гош, Гамбит)
0.0 1.2246467991473533e ⇒ (СКМ)

Общий Лисп: (1  (exp (complex 0 pi)))
#C(0.0L0  ⇒ (clisp может)
#C(0.0d0 1.2246063538223773d ⇒ (cmucl выступает)
#C(0.0d0 1.2246467991473532d ⇒ (SBCL)

На Perl: use Math::Complex; Math::Complex


1.22464679914735e ⇒ 

Питон: from cmath import exp, pi; exp(complex(0, pi))   1
1.2246467991473532e ⇒ (с CPython)

Рубин: require 'complex'; Complex::polar(1, Math::PI)   1
Complex(0.0, 1.22464679914735e ⇒ (МРТ)
Complex(0.0, 1.2246467991473532e ⇒ (последние)

Р: complex(argument = pi)   1
0 1.224606353822377e ⇒
0 голосов
от
Можно ли урегулировать этот спор? Моя первая мысль-это вид символического языка, как кленовый. Я не думаю, что считается, как будто с плавающей точкой. В самом деле, как представляю я (или J для инженеров) в обычном языке программирования? Возможно, лучший пример-это грех(π) = 0? (Или я опять пропустила?)
0 голосов
от
Я согласен с Райаном, вам нужно перейти к другой системе представление числа. Решение находится вне сферы математических операций с плавающей точкой, потому что вам нужно Пи до представлен в виде бесконечно длинного десятичного поэтому любой ограниченную точность схема просто не сработает (по крайней мере, не используя какие-то выдумки-фактор, чтобы наверстать упущенное точностью).
0 голосов
от
Ваш вопрос мне кажется немного странным, так как вы, кажется, предполагая, что математические операции с плавающей точкой реализуется язык. Это вообще не правда, как математика ФП осуществляется с помощью плавающей точкой процессоры на аппаратном уровне. Но программное обеспечение или оборудование, с плавающей точкой всегда будет неточным. Вот только как поплавки работы. Если вы нуждаетесь в большей точности необходимо использовать различные представление числа. Просто если вы делаете целочисленной математики на цифры, которые не вписываются в int или long. В некоторых языках есть библиотеки для этого встроенный в (Я знаю, что Java имеет BigInteger и bigdecimal), но вы должны явно использовать эти библиотеки вместо родного видах, и результативность будет (иногда значительно) хуже, чем если бы вы использовали поплавки.
0 голосов
от
@Райан Фокс в самом деле, как представляю я (или J для инженеров) в обычном языке программирования? Родной сложные типы данных далеки от неизвестных. Фортран это было в середине шестидесятых, и ОП экспонатов множество других языков, которые поддерживают их в последующих исторических наук. И комплексные числа могут быть добавлены на другие языки как библиотеки (с перегрузка операторов они даже выглядят как собственные типы в коде). Но если вы не предоставите частный случай этой проблемы, "не-согласия" - это просто выражение неточное машинной арифметики, нет? Это как жаловаться, что
float r = 2/3;
float s = 3*r;
float t = s 

заканчивается (Т != 0) (по крайней мере, если вы используете достаточно тупой компилятор)...
0 голосов
от
У меня были длиннющие чаты кофе с моим лучшим другом говорили об иррациональных числах и разница между другими числами. Ну, мы оба согласны в этом с другой точки зрения: Иррациональные числа-это отношения, как функции, таким образом, каким образом? Ну, думаю, про "Если вы хотите идеальный круг, дают мне идеальное Пи", но круги разные другие цифры (с 4-х сторон, 5, 6... 100, 200), но... сколько сторон у тебя есть, больше похоже на круг похоже. Если вы следили за мной до сих пор, соединяя все это идеи-формулы Пи: Так, пи-функция, но тот, который никогда не заканчивается! из-за параметра∞, но мне нравится думать, что вы можете иметь "экземпляр" ИП, если вы измените параметр ∞ для очень большой int, вы будете иметь очень большие Пи экземпляр. То же самое с e, дайте мне огромный параметра, я будет дать вам огромное. Собираю все идеи: А у нас есть ограничения на память, язык и библиотеки предоставляют нам огромный экземпляр иррациональные числа, в этом случае, Pi и E, а конечный результат, то вам придется долго подход, чтобы получить 0, как примеры, приведенные @Крис Шут-молодой
0 голосов
от
В самом деле, как представляю я (или J для инженеров) в обычном языке программирования? На языке, который не имеет собственного представления, его обычно добавляют с помощью ООП создание класса
Complex
представлять
i
и
j
, с перегрузкой оператора, чтобы правильно заниматься операциями с привлечением других
Complex
цифр и других количество примитивов родной язык. Например: Complex.java в C
0 голосов
от
Численный анализ учит нас, что вы не можете рассчитывать на точное значение малые различия между большими числами. Это как раз не влияет на уравнение в вопрос здесь, но может принести нестабильность во всем-от решения почти сингулярных набор одновременных уравнений через нахождение нулей полиномов, для оценки журналов(~1) или ехр(~0) (я даже видел специальные функции для оценки журналов(х 1) и (ехр(х)-1), чтобы обойти это). Я бы посоветовала вам не думать в плане обнуления разница ... ты не можешь ... а делать соответствующие вычисления таким образом, чтобы обеспечить минимальную ошибку. Я извиняюсь, это 43 лет, как я это вдолбили в универе, и даже если бы я помнил ссылки, я уверен, что есть лучше вещи. Я предлагаю в качестве отправной точки. Если это звучит немного покровительственно, я извиняюсь. Мой "численный анализ 101" был частью моего курса химии, так как там не было много CS в те дни. Я действительно не нравится место/численный анализ имеет важное значение в современном конечно CS.
...