Golyb_q
Гуру
(2957)
1 год назад
Если обычный пример это
2 + 2 [число 1] <операция> [число 2]
То обратная польская это
2 2 + [число 1] [число 2] <операция>
Вот пример:
Обычная инфиксная или как ее
2 + 2 * 2
Сначало идёт умножение (2 * 2)
2 + 4
Ну и ответ (2 + 4)
6
Обратная польская
2 2 2 * +
Видим что первая операция которая идёт после цифр - умножение. Берём 2 цифры перед операцией и умножаем (2 2 *)
2 4 +
Ну и ответ (2 4 +)
6
У обратной польской нотации есть классный прикол - ей не нужны скобки, чтобы выставлять приоритеты выполнения действий
Например:
Обычная
(2 + 2) * 2
Обратная польская
2 2 + 2 *
Тут видно что первое что встречается после цифр - сложение, поэтому его и делаем первым (2 2 +)
4 2 *
Ну и в итоге 8
Надеюсь понятно объяснил
Golyb_qГуру (2957)
1 год назад
Если пример такой
1 2 + 3 * 4 5 * +
(1 2 +)
3 3 * 4 5 * +
(3 3 *)
9 4 5 * +
(4 5 *)
9 20 +
29
Иван Сигаев
Искусственный Интеллект
(156835)
1 год назад
А что за операция "->" ?
В обратной польской записи используется стэк, числа помещаются в стэк, а операторы забирают необходимое количество и возвращают результат обратно
1 ( -- 1) запись в скобках показывает состояние стека до и после
2 ( 1 -- 1 2)
+ ( 1 2 -- 3) забрал две "позиции" из стэка, выполнил сложение, вернул результат
3 ( 3 -- 3 3)
итд