2015-12-12 3 views
-1

Я хочу представить все иррациональные числа с классом в C++.Как представить иррациональные числа в C++

Как я могу это сделать? Что, предположительно, быть моими членами и функциями данных?

заранее спасибо ...

+0

Вы имеете в виду рациональные числа? Существует бесчисленное количество иррациональных чисел, поэтому вам нужно некоторое конечное приближение. «double» - один такой. –

+0

Нет. Я имею в виду, я хочу рассчитать все иррациональные числа в классе, с некоторыми элементами данных, такими как double или int. Иррациональными числами являются, например, pi или i. – eneski

+0

И я хочу решить, является ли число иррациональным числом или нет. Возможно ли это? – eneski

ответ

0

Единственный способ, которым я думаю, что вы можете достичь чего-то подобного, будет с идентификаторами, а не с фактическими математическими или численными представлениями. Даже в чистой математике Иррациональные числа обозначаются как иррациональные из-за данных постулатов. Даже человек не может действительно представить иррациональное число своими цифрами. Так что единственное, что я могу предложить, чтобы иметь идентификатор из известных иррациональных чисел, таких, как что-то вроде этого:

enum Irrational { 
    PI = 0, 
    E, 
    SQRT2, 

    ... 

}; 

Тогда вы можете захотеть сделать ассоциацию их с картой, как это:

std::map<Irrational, double> myIrrationals; 
myIrrations.insert(std::make_pair<Irrational, double>(PI, 3.141592654)); 

Тогда ваш чек на иррациональные номера будет прав, если они найдены на этой карте и false в противном случае.

0

Вы не можете представлять иррациональные числа, даже в чистом математике, кроме символически (например, Pi, SQRT (2) - вы можете сказать: «Пи», но вы не можете написать его точное значение на бумага). То же самое относится и к компьютерному представлению - если вы хотите точно их представлять, вы не можете представлять их как «реальные» цифры, только символически (на самом компьютере на самом деле сложно точно представлять даже рациональные числа).

Итак, чтобы ответить на ваш вопрос - как следствие вышеизложенного, ваши члены данных могут быть, например, строками (символами или целыми выражениями, представленными как строки, такие как «Pi» или «sqrt (2)») и/или в сочетании с деревьями выражений (операторы и операнды для хранения выражений, которые представляют иррациональные числа, такие как operator = sqrt, operand = 2 и аналогичные).