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;
}

Livaanderiamarum 29.01.2012 19:56

Спасибо, но я просто немного не правильно понимал чтопроисходит)) то что я говорил сделать УЖЕ СДЕЛАЛИ) люд расширили принцепы работы операторов арифметических для работы с вещественными числами)).

Я щас читаю пути раскрытия неопределенности деления на ноль) и думаю как лучше поступать. В общем то что я говорил уже сделали люди оказывается)))) лет так 1000 назад, но я все ровно молодец что постарался)

dmitriymar 29.01.2012 20:59

Чтоб дать ответ на дурака вопросик,
Порой не хватит опыта отцов.
Один глупец в колодец камень бросит –
Достать не смогут сорок мудрецов.
© Copyright: Константин Ефетов, 2009

Livaanderiamarum 29.01.2012 22:38

Чувак, это рэпчик?

А если серьезно,то шикарная мысль. Что мудрецы сидят себе думают что земля плоская, у них на это есть все основания, сотни книг, учения о черепахах. И тут дурак какой то говорит, а смотрите, она круглая, и они не смогут ответить, и не смогут вынуть камень который он бросил.

Nanto 01.02.2012 15:58

ноль - это вообще-то положительное число

B@rmaley.e><e 01.02.2012 16:41

Цитата:

Сообщение от Nanto
ноль - это вообще-то положительное число

Да ну?

Nanto 01.02.2012 16:51

Ну да
Никто не помнит из матанализа области определения?
(-∞;0) и [0;+∞)

Nanto 01.02.2012 17:07

И вообще надо формализовать вопрос! В какой области "На 0 делить нельзя!"?
в арифметике - да, это запрещено
в алгебре - не определено
в матанализе - можно "раскрыть неопределлённость"
в программировании - или "max_value", или "NaN"
в философии - парадокс Зенона
... что там ещё? Космология? Квантово-релятивистская физика?
А Вы хотите причесать все эти совершенно разные области человеческого знания под одну гребёнку...

B@rmaley.e><e 01.02.2012 17:57

Цитата:

Сообщение от Nanto
Ну да

И где там сказано про положительность нуля?
По определению x положительно, если x > 0.
Цитата:

Сообщение от Nanto
в матанализе - можно "раскрыть неопределлённость"

Как Вы раскроете 1/0?

B@rmaley.e><e 02.02.2012 09:17

Maxmaxmaximus, я вижу там только для пределов, а у меня просто числовая константа.


Часовой пояс GMT +3, время: 03:28.