Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   На 0 делить нельзя! (https://javascript.ru/forum/offtopic/25182-na-0-delit-nelzya.html)

Livaanderiamarum 28.01.2012 21:02

Цитата:

Сообщение от B@rmaley.e><e
А физические законы мира сами подстроились под неё?

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

B@rmaley.e><e 28.01.2012 21:05

Цитата:

Сообщение от Livaanderiamarum
одиинаковые множители сокращаются

Кто сказал? Докажите.
В кольце
a*b = a*c
a*b = a*c
a*b - a*c = a*c - a*c
a*(b - c) = 0
Очевидно, что в случае если a равно нулю, b вовсе не обязано быть равно c.
Более того, также необходимо, чтобы наше кольцо являлось областью целостности.

B@rmaley.e><e 28.01.2012 21:09

Цитата:

Сообщение от Livaanderiamarum
ведут себя не правильно при работе со всякими нулями бесконечностями

А где неправильное поведение для нуля? И чем оно неправильно?

Livaanderiamarum 28.01.2012 21:09

Цитата:

Сообщение от B@rmaley.e><e
Кто сказал? Докажите.

Очевидно, что в случае если a равно нулю
------
видите? операторы опять не правильно ведут себя с нечислами.

Livaanderiamarum 28.01.2012 21:10

Цитата:

Сообщение от B@rmaley.e><e
А где неправильное поведение для нуля? И чем оно неправильно?

не делится на 0, как вариант

B@rmaley.e><e 28.01.2012 21:13

Цитата:

Сообщение от Livaanderiamarum
Очевидно

Очевидно — это какие-то эмоции, строгое доказательство предоставьте, пожалуйста.
Цитата:

Сообщение от Livaanderiamarum
не делится на 0

А что в этом неправильного?
Цитата:

Сообщение от Livaanderiamarum
видите? операторы опять не правильно ведут себя с нечислами.

Где неправильно? Всё согласовано со свойствами алгебраических структур.

Livaanderiamarum 28.01.2012 21:26

Цитата:

Сообщение от B@rmaley.e><e
Где неправильно? Всё согласовано со свойствами алгебраических структур.

так, давай я просто перечислю.

Нули не сокращаются - это не правильно.
На ноль не делится - это не правильно.

вот еще пример ошибочной работы с нечислами

14-14 = 0
(14-14)*10 = (14-14)*30
одинаковые множители (14-14) сокращаются, получается
10=30

B@rmaley.e><e 28.01.2012 21:39

Цитата:

Сообщение от Livaanderiamarum
Нули не сокращаются - это не правильно.

Почему?
Выше я уже показал, что уравнение a*x = a*y имеет сколько угодно корней при a = 0
Цитата:

Сообщение от Livaanderiamarum
одинаковые множители (14-14) сокращаются

Не сокращаются. Сокращения не существует, есть лишь процесс, описанный мною ранее. И он приводит к b = c только при ненулевом a (в области целостности).

Livaanderiamarum 28.01.2012 21:43

Цитата:

Сообщение от B@rmaley.e><e
Не сокращаются. Сокращения не существует, есть лишь процесс, описанный мною ранее. И он приводит к b = c только при ненулевом a (в области целостности).

верно! арифметическое сокращение тоже может работать только с количествами. а не с нулями.

monolithed 29.01.2012 19:47

Цитата:

Сообщение от Livaanderiamarum
верно! арифметическое сокращение тоже может работать только с количествами. а не с нулями.

Если так сильно хочется делить и умножать на нуль, наслаждайся :D

#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, время: 07:24.