Re: Вот и выросло....
От: graniar  
Дата: 30.10.23 19:04
Оценка: +4
Вот поэтому-то, когда возникают малейшие сомнения в приоритете операторов, стоит поставить лишние скобки и не заморачиваться.
Re[2]: Вот и выросло....
От: wl. Россия  
Дата: 30.10.23 20:36
Оценка: :)
Здравствуйте, graniar, Вы писали:

G>Вот поэтому-то, когда возникают малейшие сомнения в приоритете операторов, стоит поставить лишние скобки и не заморачиваться.


что, даже в алгебре бывает Undefined Behavior? Весьма неожиданно
Re[3]: Вот и выросло....
От: Mr.Delphist  
Дата: 30.10.23 21:08
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Правильный ответ именно 1. Потому что между 3 и скобкой опущен знак умножения и выражение 3(8-6) является единым блоком для деления.


Это какая-то новая спека от комитета по Мат++?
Re[4]: Вот и выросло....
От: Michael7 Россия  
Дата: 30.10.23 23:14
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:


M>>Правильный ответ именно 1. Потому что между 3 и скобкой опущен знак умножения и выражение 3(8-6) является единым блоком для деления.


MD>Это какая-то новая спека от комитета по Мат++?


Старая. Называется арифметическая и алгебраическая запись умножения.
Re[4]: Вот и выросло....
От: Michael7 Россия  
Дата: 30.10.23 23:44
Оценка: -2
Здравствуйте, Jester, Вы писали:

M>>Правильный ответ именно 1. Потому что между 3 и скобкой опущен знак умножения и выражение 3(8-6) является единым блоком для деления.

M>>Если бы было записано 3*(8-6), то тогда 4.

J>Я очень надеюсь, что с такой логикой Вы либо не являетесь нашим коллегой, либо не пишете никаких критичных систем.


Вообще, признаться забыл, что знак умножения ВСЕГДА имеет приоритет перед делением. Так что есть или нет там знака * правильный ответ всегда 1. Так как всегда сначала 3 умножается на (8-6).
Re[2]: Вот и выросло....
От: Michael7 Россия  
Дата: 30.10.23 23:45
Оценка:
Здравствуйте, dom1532, Вы писали:


D>В итоге 4 же ответ, верно? 1 это ерунда какая то


Насчет 4 при знаке * я должен признаться, что невольно ввел в заблуждение в предыдущем посте. Немного проверил и действительно правильный ответ всегда 1.
Re[4]: ..за четыре года
От: nikkit  
Дата: 31.10.23 08:01
Оценка: +4
O>если там перейти на вкладку Math input и вкопипастить 1/2x и 1/2*x совершенно разные вещи получаются
O>а на вкладке natural language — вещи получаются одинаковые
O>такие дела

спросил спеца по матану

Начнем с того, что пример изначально записан некорректно. В математике опускается знак умножения только между цифрой и буквой. А между цифрой и скобкой нет. Это во-первых. А во-вторых, даже если в какой-то там вселенной в алгебре реально умножение сильнее деления (хаха), то исходный пример вообще ни разу не алгебра, там ни одной буквы нет.
А уж то, какие правила записи математических выражений в разных программулях и как в зависимости от этого меняется результат — это вообще смешно обсуждать.

Re[2]: ..за четыре года
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 31.10.23 08:06
Оценка: +2
Здравствуйте, ononim, Вы писали:

O>https://www.yaplakal.com/forum7/st/625/topic1987710.html


Нашёл этот учебник 1967 года и спросил у профессора математики:
— Это ещё актуально? (скриншот из учебника, как на yaplakal.com)
— Видимо нет. Вопрос как договориться. Лучше ставить скобки, зачем путать людей такой формой записи?
— Получается, что в этом примере (скриншот из корневого сообщения) у тебя получается 4 без вариантов?
— Да.
Вселенная бесконечна как вширь, так и вглубь.
Отредактировано 31.10.2023 8:47 Real 3L0 . Предыдущая версия . Еще …
Отредактировано 31.10.2023 8:07 Real 3L0 . Предыдущая версия .
Re[5]: ..за четыре года
От: ononim  
Дата: 31.10.23 08:08
Оценка:
N>спросил спеца по матану
N>А уж то, какие правила записи математических выражений в разных программулях и как в зависимости от этого меняется результат — это вообще смешно обсуждать.
да уж

N>В математике опускается знак умножения только между цифрой и буквой. А между цифрой и скобкой нет.

https://img1.labirint.ru/rcimg/c411695d56591061be1615960c2284aa/960x540/books51/509927/ph_1.jpg?1563863267
(Лифшиц если чо)
Как много веселых ребят, и все делают велосипед...
Отредактировано 31.10.2023 8:11 ononim . Предыдущая версия . Еще …
Отредактировано 31.10.2023 8:10 ononim . Предыдущая версия .
Re[5]: ..за четыре года
От: big.muzzy  
Дата: 31.10.23 08:17
Оценка:
Здравствуйте, nikkit, Вы писали:


N>спросил спеца по матану


Аналогично. Спросил своего коллегу (д.т.н.) занимающегося математикой — говорит ерунда написана, не морочь людям голову.

Про приоритет умножения перед делением сказал то же самое.
Я видел скриншот из книги, представленный на ЯП, но что это за учебник искать, признаюсь, не стал. Ссылок и названия книги на скринах нет.
Re[2]: Вот и выросло....
От: Alekzander  
Дата: 31.10.23 08:32
Оценка: +2
Здравствуйте, dom1532, Вы писали:

D>В итоге 4 же ответ, верно? 1 это ерунда какая то


ИМХО, единственный правильный ответ — Operator expected (скобки это не лекарство).

P.S. Не, ну, в принципе, 3 is not a function тоже сгодится (так говорит Джаваскрипт).
Re[5]: Вот и выросло....
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 31.10.23 08:44
Оценка: +1
Здравствуйте, Michael7, Вы писали:

M>Вообще, признаться забыл, что знак умножения ВСЕГДА имеет приоритет перед делением. Так что есть или нет там знака * правильный ответ всегда 1. Так как всегда сначала 3 умножается на (8-6).


Вселенная бесконечна как вширь, так и вглубь.
Re[6]: Вот и выросло....
От: Michael7 Россия  
Дата: 31.10.23 09:05
Оценка:
Здравствуйте, Real 3L0, Вы писали:


M>>Вообще, признаться забыл, что знак умножения ВСЕГДА имеет приоритет перед делением. Так что есть или нет там знака * правильный ответ всегда 1. Так как всегда сначала 3 умножается на (8-6).


R3>


Можешь проверить на Wolfram Mathematica https://www.wolframalpha.com/input?i=36%3A3*%288-6%29
Re[7]: Вот и выросло....
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 31.10.23 13:21
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Можешь проверить на Wolfram Mathematica https://www.wolframalpha.com/input?i=36%3A3*%288-6%29


Хорошо, что я никогда не пользовался этой поделкой. А теперь и подавно не буду.
Вселенная бесконечна как вширь, так и вглубь.
Re[7]: Вот и выросло....
От: big.muzzy  
Дата: 01.11.23 00:34
Оценка: 1 (1)
Здравствуйте, Michael7, Вы писали:


M>Можешь проверить на Wolfram Mathematica https://www.wolframalpha.com/input?i=36%3A3*%288-6%29



Могу ошибаться, но похоже, что деление записывается как "/". ":" означает что-то другое

Корректный результат:
https://www.wolframalpha.com/input?i=36%2F3*%288-6%29


Exact result
24

Re[3]: Вот и выросло....
От: Silver_S Ниоткуда  
Дата: 10.11.23 23:35
Оценка:
Здравствуйте, pva, Вы писали:

pva>Приоритет умножения выше по сравнению с чем? Любой компонент выражения неразрывно связан со своим знаком. В примере выше :3 — единый компонент. Поэтому не может быть никакого 3*2, может быть только :3*2 = 2/3.


А здесь какой вариант лучше?
 amount:count = am:c

 amount:count = am(ount)2:c
Re[4]: Вот и выросло....
От: pva  
Дата: 11.11.23 13:14
Оценка:
Здравствуйте, Silver_S, Вы писали:

S_S>А здесь какой вариант лучше?

S_S>
 amount:count = am:c

S_S>
 amount:count = am(ount)2:c

Что значит "лучше"? Нет здесь никакого "лучше", а только игра с неопределенностью записи. Считать ли знак ":" эквивалентом "/" или дробной черты?
Можешь переписать выражение выше в терминах сложения-вычитания и сразу станет понятно "какой вариант лучше".
newbie
Re[5]: Вот и выросло....
От: Silver_S Ниоткуда  
Дата: 11.11.23 15:06
Оценка:
Здравствуйте, pva, Вы писали:
S_S>>
 amount:count = am:c

S_S>>
 amount:count = am(ount)2:c

pva>Что значит "лучше"? Нет здесь никакого "лучше", а только игра с неопределенностью записи.

Здесь вопрос — какое соглашение для приоритетов лучше. Неявное умножение для однобуквенных переменных должно бы иметь приоритет побольше, чем явные операции ab=a*b

В программировании однобуквенные переменные и неявные умножения не приживутся — слишком мало букв. Но сильно повышают читабельность арифметических выражений. Так что такой синтаксис актуальный, и с приоритетами не должно быть путаницы.

pva>Считать ли знак ":" эквивалентом "/" или дробной черты?


Это вроде синонимы, для операции деления. Нет смысла задавать разные приоритеты для ":" и "/".
Re[6]: Вот и выросло....
От: pva  
Дата: 11.11.23 16:22
Оценка:
Здравствуйте, Silver_S, Вы писали:

S_S> Здесь вопрос — какое соглашение для приоритетов лучше. Неявное умножение для однобуквенных переменных должно бы иметь приоритет побольше, чем явные операции ab=a*b

Как бы да, но с другой стороны — нет. 3a * 4b == 3 * 4 * a * b. Но мы же понимаем что нельзя записать 34ab из-за неоднозначности.

pva>>Считать ли знак ":" эквивалентом "/" или дробной черты?

S_S>Это вроде синонимы, для операции деления. Нет смысла задавать разные приоритеты для ":" и "/".
Да, синонимы, но ведь пропуск * является синонимом самого умножения. Но почему-то a / bc трактуют как a / (b * c).
Здесь еще интересная тема написания дробей с целым, например 3 и 1/2. В строку не запишешь же 31/2. Остается только 3+1/2.
Так и символы : и / можно было бы разделить. Ведь дробь в строку писать сложно. Можно было бы сказать что a / expr == a / (expr). Например, "a / b * c" не является эквивалентом a * c / b, а означает a / (b * c)

Короче, как по мне, вся эта каша из пальца высосана. Как тут уже много раз предлагали — не надо мудрить, а если есть разночтения — использовать скобки.
newbie
Re[3]: Вот и выросло....
От: BVA Интернет  
Дата: 14.11.23 17:10
Оценка: +1
Здравствуйте, wl., Вы писали:

wl.>Здравствуйте, graniar, Вы писали:


G>>Вот поэтому-то, когда возникают малейшие сомнения в приоритете операторов, стоит поставить лишние скобки и не заморачиваться.


wl.>что, даже в алгебре бывает Undefined Behavior? Весьма неожиданно


В алгебре нет, а вот у нейронных сетей бродящих вокруг результаты бывают непредсказуемыми.
--
http://www.slideshare.net/vyacheslavbenedichuk
https://www.linkedin.com/in/vbenedichuk
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.