Математический Вопрос о делении - PullRequest
0 голосов
/ 10 ноября 2010

У меня есть простая проблема, которая касается математических операторов.

Предположим, у меня есть что-то вроде

3//4

4 -- 3

Будет ли результат 12 для первого и 1 для второго?

Ответы [ 2 ]

2 голосов
/ 10 ноября 2010

Ни // ни - не имеют общепринятых значений.Выражение 4 - 3 может быть интерпретировано как 4 - (- 3) = 7, потому что у нас есть общее согласие, что 0-3 может быть написано "-3", без нуля.

Для того, чтобыинтерпретировать 3 // 4 как 12, нужно было бы иметь аналогичное соглашение о том, что «1/4» может быть написано без 1, как в «/ 4».Тогда как 4--3 можно прочитать как 4- (0-3), 3 // 4 можно прочитать как 3 / (/ 4) = 3 / (1/4) = 12.

Я никогда не видел, чтобы кто-либо использовал это соглашение о делении, и есть несколько веских причин не делать этого.

  1. Вы не получаете никакой выразительной силы, кроме свободы опускать числитель 1.
  2. Символ "/" теперь имеет две синтаксические формы, одну унарную и одну двоичную
  3. Считывание выражений становится сложнее, и запись взаимодействует с неявным синтаксисом умножения.Например, / (ab) = / a / b может означать 1 / (ab) = 1 / a * 1 / b (true) или может означать 1 / (ab) = 1 / (a ​​/ b) (false).

С другой стороны, это может быть интересным академическим упражнением для изучения последствий - предполагаемых или нет - такого изобретения.

0 голосов
/ 10 ноября 2010

Первое, вероятно, будет синтаксической ошибкой, а второе, вероятно, будет 7 = 4 - (-3) = 4 + 3 = 7

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...