Объясните, пожалуйста, одну простейшую вещь...

Rody
Сообщений: 14
Зарегистрирован: 27 ноя 2011, 21:00

Объясните, пожалуйста, одну простейшую вещь...

Сообщение Rody » 02 мар 2012, 16:55

Здравствуйте. Пишу интерпретатор формул, и тут натыкаюсь на такую вот проблему:
пример: $$1-2^2$$ (1-2^2) несколькими строчными калькуляторами высчитывается (например, Derive) и ответ получается -3.
Мне же лично такой ответ не совсем понятен, ибо если решить пример 1-2^2 по действиям, то выйдет, что:
1. -2^2=4
2. 1+4=5
То есть, ответ 5.
Ведь при подсчете примера $$1-2*-2$$ (1-2*-2), мы сперва сосчитаем -2*-2, а потом уже 1+4=5 (причем Derive думает так же). Так почему же тогда 1-2^2 = -3 ? И как нужно правильно?
Спасибо.
PS А вот если будет $$1-(2^2)$$, тогда ответ, конечно же, -3. Но ведь $$1-2^2$$ и $$1-(2^2)$$ это же разные вещи.
Последний раз редактировалось Rody 28 ноя 2019, 17:18, всего редактировалось 1 раз.
Причина: test

AV_77
Сообщений: 3530
Зарегистрирован: 23 фев 2007, 21:00

Объясните, пожалуйста, одну простейшую вещь...

Сообщение AV_77 » 02 мар 2012, 17:00

Rody писал(а):Source of the post
Здравствуйте. Пишу интерпретатор формул, и тут натыкаюсь на такую вот проблему:
пример: $$1-2^2$$ (1-2^2) несколькими строчными калькуляторами высчитывается (например, Derive) и ответ получается -3.
Мне же лично такой ответ не совсем понятен, ибо если решить пример 1-2^2 по действиям, то выйдет, что:
1. -2^2=4
2. 1+4=5
То есть, ответ 5.
Ведь при подсчете примера 1-2*-2, мы сперва сосчитаем -2*-2, а потом уже 1+4=5 (причем Derive думает так же). Так почему же тогда 1-2^2 = -3 ? И как нужно правильно?
Спасибо.

Правильно -3. Здесь "-" - это знак вычитания, поэтому сначала выполняется возведение в степень, т.е. $$2^2$$, а потом вычитание. Вот если бы было $$1 + (-2)^2$$, то ответ был бы 5.
Последний раз редактировалось AV_77 28 ноя 2019, 17:18, всего редактировалось 1 раз.
Причина: test

frim_ax
Сообщений: 264
Зарегистрирован: 28 янв 2012, 21:00

Объясните, пожалуйста, одну простейшую вещь...

Сообщение frim_ax » 02 мар 2012, 17:13

Rody писал(а):Source of the post Но ведь $$1-2^2$$ и $$1-(2^2)$$ это же разные вещи.

Почему вы так решили? В школе учат по-другому.
Последний раз редактировалось frim_ax 28 ноя 2019, 17:18, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Dimka1
Сообщений: 10
Зарегистрирован: 29 фев 2012, 21:00

Объясните, пожалуйста, одну простейшую вещь...

Сообщение Dimka1 » 02 мар 2012, 18:42

frim_ax писал(а):Source of the post
Rody писал(а):Source of the post Но ведь $$1-2^2$$ и $$1-(2^2)$$ это же разные вещи.

Почему вы так решили? В школе учат по-другому.


Ну вот как учили вшколе
1-22=1-1*2*2=1-4=-3

Странные у Вас вопросы
Последний раз редактировалось Dimka1 28 ноя 2019, 17:18, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
kiv
Сообщений: 1012
Зарегистрирован: 02 дек 2011, 21:00

Объясните, пожалуйста, одну простейшую вещь...

Сообщение kiv » 03 мар 2012, 09:01

Rody писал(а):Source of the post
$$1-2^2$$
1. -2^2=4
2. 1+4=5


Представим на секундочку, что вы правы. Тогда что такое 123 - 123, 1+23, 12+3 или 1+2+3? Ведь в приведенной вами формуле знака + нет, от у вас, выходит, ПОДРАЗУМЕВАЕТСЯ?

Rody писал(а):Source of the post
PS А вот если будет $$1-(2^2)$$, тогда ответ, конечно же, -3. Но ведь $$1-2^2$$ и $$1-(2^2)$$ это же разные вещи.


Вы когда-нибудь о приоритетах операций слышали? Или хоть какой-то язык программирования с арифметическими операторами изучали?
Последний раз редактировалось kiv 28 ноя 2019, 17:18, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

Объясните, пожалуйста, одну простейшую вещь...

Сообщение folk » 03 мар 2012, 09:38

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

Украдено для Вас отсюда [url=http://pages.cs.wisc.edu/~cs536-1/NOTES/3.CFG.html]http://pages.cs.wisc.edu/~cs536-1/NOTES/3.CFG.html[/url]

exp →
exp PLUS term |
exp MINUS term |
term

term →
term TIMES factor |
term DIVIDE factor |
factor

factor →
exponent POW factor |
exponent

exponent →
MINUS exponent |
final

final → INTLITERAL |
LPAREN exp RPAREN

Здесь видно как можно разобрать выражение с учетом приоритетов, скобок и всего прочего.
В случае factor неявно ограничена ассоциативность - то что в степень возводят справа налево
Последний раз редактировалось folk 28 ноя 2019, 17:18, всего редактировалось 1 раз.
Причина: test

mihailm
Сообщений: 3078
Зарегистрирован: 11 май 2010, 21:00

Объясните, пожалуйста, одну простейшую вещь...

Сообщение mihailm » 04 мар 2012, 06:27

Есть такое выражение
"Метать бисер перед свиньями"
Последний раз редактировалось mihailm 28 ноя 2019, 17:18, всего редактировалось 1 раз.
Причина: test

Таланов
Сообщений: 21057
Зарегистрирован: 07 янв 2009, 21:00

Объясните, пожалуйста, одну простейшую вещь...

Сообщение Таланов » 04 мар 2012, 07:07

Это мудрое извлечение из Библии. А у нас мораторий на это.
Последний раз редактировалось Таланов 28 ноя 2019, 17:18, всего редактировалось 1 раз.
Причина: test

Rody
Сообщений: 14
Зарегистрирован: 27 ноя 2011, 21:00

Объясните, пожалуйста, одну простейшую вещь...

Сообщение Rody » 04 мар 2012, 09:24

Dimka1 писал(а):Source of the post
frim_ax писал(а):Source of the post
Rody писал(а):Source of the post Но ведь $$1-2^2$$ и $$1-(2^2)$$ это же разные вещи.

Почему вы так решили? В школе учат по-другому.


Ну вот как учили вшколе
1-22=1-1*2*2=1-4=-3

Странные у Вас вопросы

Спасибо, что расписали. Видимо, в школе я упустил этот момент.

kiv писал(а):Source of the post
Rody писал(а):Source of the post
$$1-2^2$$
1. -2^2=4
2. 1+4=5


Представим на секундочку, что вы правы. Тогда что такое 123 - 123, 1+23, 12+3 или 1+2+3? Ведь в приведенной вами формуле знака + нет, от у вас, выходит, ПОДРАЗУМЕВАЕТСЯ?

Rody писал(а):Source of the post
PS А вот если будет $$1-(2^2)$$, тогда ответ, конечно же, -3. Но ведь $$1-2^2$$ и $$1-(2^2)$$ это же разные вещи.


Вы когда-нибудь о приоритетах операций слышали? Или хоть какой-то язык программирования с арифметическими операторами изучали?

Дело в том, что при 1-2*-2, в данном формуле так же знака + нет, но, тем не менее, в конечном счете, он все-таки появляется.
О приоритетах мне, разумеется, известно, и языки программирования тоже изучал и продолжаю изучать.
Теперь, хоть четкий ответ мне уже и был дан, попробую еще раз высказать свою концепцию, и тогда станет ясно почему я засомневался.
1-2*-2=1+4=5
Мне почему то казалось, что эта запись вполне логична: 1-2^2=1-2*-2=5
Но как выяснилось, в данном случае, правильно будет: 1-2^2=1-1*2*2=1-4=-3
folk писал(а):Source of the post
1-2^2 = 1 - (2^2) по правилу того что сначала делаются все операции в скобках, потом все возведения в степень делаются до всех умножений которые делаются до всех сложений. В программировании это может реализовываться при помощи грамматик, которые могут быть реализованы сложно как конечные
автоматы, а могут быть реализованы и как функции на каком то языке. Но запись грамматики - это практически общепринятый способ описания правил написания выражений.

Украдено для Вас отсюда [url=http://pages.cs.wisc.edu/~cs536-1/NOTES/3.CFG.html]http://pages.cs.wisc.edu/~cs536-1/NOTES/3.CFG.html[/url]

exp →
exp PLUS term |
exp MINUS term |
term

term →
term TIMES factor |
term DIVIDE factor |
factor

factor →
exponent POW factor |
exponent

exponent →
MINUS exponent |
final

final → INTLITERAL |
LPAREN exp RPAREN

Здесь видно как можно разобрать выражение с учетом приоритетов, скобок и всего прочего.
В случае factor неявно ограничена ассоциативность - то что в степень возводят справа налево

Благодарю. Еще подскажите, пожалуйста, где можно посмотреть переводы ф-ций с англ. языка.
mihailm писал(а):Source of the post
Есть такое выражение
"Метать бисер перед свиньями"

Зря вы так. Видимо, это следует от того, что если человеку что-то непонятно, то сколько ты ему это не объясняй - все бесполезно, ибо он все равно этого никогда не поймет... Это не так.
А тем, кто все-таки решается помочь неучу - честь и хвала.
Последний раз редактировалось Rody 28 ноя 2019, 17:18, всего редактировалось 1 раз.
Причина: test

AV_77
Сообщений: 3530
Зарегистрирован: 23 фев 2007, 21:00

Объясните, пожалуйста, одну простейшую вещь...

Сообщение AV_77 » 04 мар 2012, 10:34

Rody писал(а):Source of the post
Теперь, хоть четкий ответ мне уже и был дан, попробую еще раз высказать свою концепцию, и тогда станет ясно почему я засомневался.
1-2*-2=1+4=5
Мне почему то казалось, что эта запись вполне логична: 1-2^2=1-2*-2=5
Но как выяснилось, в данном случае, правильно будет: 1-2^2=1-1*2*2=1-4=-3

Видимо в школе не только приоритет операций мимо вас прошел, но и скобки вы не изучали. Запись $$1 - 2 \cdot -2$$ бессмысленна без скобок. Должно быть либо $$1 - 2 \cdot (-2) $$, либо $$1 + (-2) \cdot (-2)$$.
Последний раз редактировалось AV_77 28 ноя 2019, 17:18, всего редактировалось 1 раз.
Причина: test


Вернуться в «Для начинающих»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 4 гостей