Цитата:
|
Цитата:
В кольце a*b = a*c a*b = a*c a*b - a*c = a*c - a*c a*(b - c) = 0 Очевидно, что в случае если a равно нулю, b вовсе не обязано быть равно c. Более того, также необходимо, чтобы наше кольцо являлось областью целостности. |
Цитата:
|
Цитата:
------ видите? операторы опять не правильно ведут себя с нечислами. |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Нули не сокращаются - это не правильно. На ноль не делится - это не правильно. вот еще пример ошибочной работы с нечислами 14-14 = 0 (14-14)*10 = (14-14)*30 одинаковые множители (14-14) сокращаются, получается 10=30 |
Цитата:
Выше я уже показал, что уравнение a*x = a*y имеет сколько угодно корней при a = 0 Цитата:
|
Цитата:
|
Цитата:
#include <iostream>
class Int {
public:
Int(int i): value(i) {}
operator int() const {
return value;
}
int operator*(Int &rv) {
if_null(rv);
return value * rv;
}
int operator/(Int &rv) {
if_null(rv);
return value / rv;
}
private:
int value;
inline void if_null(Int &rv) {
if (value == 0)
value = 1;
else if (rv == 0)
rv = 1;
}
};
int main() {
Int a = 0;
Int b = 5;
int i = a * b; //5
int j = a / b; //5
std::cout << "0 * 5 = " << i << "\n0 / 5 = " << j << std::endl;
return 0;
}
|
| Часовой пояс GMT +3, время: 10:26. |