Польская нотация: что это такое?

Польская нотация (или обратная польская нотация) представляет собой систему записи математических выражений, в которой операторы располагаются после операндов. Таким образом, выражение "2 + 3" в польской нотации будет записываться как "+ 2 3". Это позволяет избежать неоднозначности при вычислении сложных выражений и упрощает их запись и обработку.

Примеры кода на польской нотации:

1. Вычисление выражения "3*(7-2)":

Стандартная запись: 3*(7-2)

Польская нотация: * 3 - 7 2

Код на Python:

stack = []

expression = ['*', 3, '-', 7, 2]

for i in expression[::-1]:

if isinstance(i, int):

stack.append(i)

else:

a = stack.pop()

b = stack.pop()

if i == '+':

stack.append(a + b)

elif i == '-':

stack.append(a - b)

elif i == '*':

stack.append(a * b)

elif i == '/':

stack.append(a / b)

result = stack.pop()

print(result) # 15

2. Вычисление выражения "sqrt(16)+sin(0.5)":

Стандартная запись: sqrt(16)+sin(0.5)

Польская нотация: + sqrt 16 sin 0.5

Код на Python:

import math

stack = []

expression = ['+', 'sqrt', 16, 'sin', 0.5]

for i in expression[::-1]:

if isinstance(i, int) or isinstance(i, float):

stack.append(i)

else:

a = stack.pop()

if i == 'sqrt':

stack.append(math.sqrt(a))

elif i == 'sin':

stack.append(math.sin(a))

result = stack.pop()

print(result) # 4.5

Похожие вопросы на: "польская нотация "

Создание и использование списков на нашем сайте
Python Timedelta: Working with Time Differences
Как правильно выводить ошибки в PHP
Fontawesome - мощнейшая библиотека векторных иконок для веб-разработки
Отмена коммита в Git: подробная инструкция
Как в Гугл таблицах сделать выпадающий список: Подробное руководство
Double to int в Java: преобразование чисел
Продолжаем познавать PHP: углубленное изучение языка программирования
Инкремент Python
Управление переменными среды с помощью Docker Compose Env