Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс Python
/

Коммутативная операция

Python: Коммутативная операция

Фраза "от перемены мест слагаемых сумма не меняется" знакома каждому со школы. Этот принцип называется коммутативным законом и является одним из основных законов арифметики.

Что такое коммутативность

Операция называется коммутативной, если порядок операндов не влияет на результат: поменяв местами значения, вы получите тот же ответ. Пример коммутативной операции: сложение.

print(3 + 2) # => 5
print(2 + 3) # => 5

Одинаковый результат подтверждает, что операция коммутативна.

2 + 3 = 5     3 + 2 = 5
└──────────┬─────────┘
  одинаковый результат

2 - 3 = -1    3 - 2 = 1
└──────────┬─────────┘
    разный результат

Некоммутативные операции

Но не все операции обладают таким свойством. Например, вычитание является некоммутативной операцией:

print(2 - 3) # => -1
print(3 - 2) # => 1

Перестановка операндов дает другой результат.

В программировании все то же самое

Коммутативность в программировании работает точно так же, как в арифметике. Python строго следует математическим правилам.

Другие некоммутативные операции:

  • Деление: 8 / 2 ≠ 2 / 8
  • Возведение в степень: 2 3 ≠ 3 2

Примеры в коде:

# Деление
print(8 / 2)   # 8 делить на 2 = 4.0

# Возведение в степень
print(3 ** 2)  # 3 в квадрате = 9

Поэтому:

  • Всегда внимательно проверяйте порядок операндов, особенно при работе с незнакомыми операциями;
  • проверяйте коммутативность экспериментально, а не предполагайте ее заранее.

Задание

Напишите программу, которая решает две задачи и выводит ответы на экран — каждый на отдельной строке.

  1. Художник хочет раскрасить 8 секций забора, каждую — в один из 2 цветов. Сколько уникальных вариантов раскраски существует? Используйте оператор возведения в степень **.
  2. Вы с двумя друзьями (итого 3 человека) купили 9 пирожных и хотите разделить их поровну. Сколько достанется каждому? Используйте оператор деления /.
Коммерческий опыт и Трудоустройство

Полезное

  • Подробнее про коммутативность

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
/
Программирование
/
Курс Python
/

Коммутативная операция

Python: Коммутативная операция

Фраза "от перемены мест слагаемых сумма не меняется" знакома каждому со школы. Этот принцип называется коммутативным законом и является одним из основных законов арифметики.

Что такое коммутативность

Операция называется коммутативной, если порядок операндов не влияет на результат: поменяв местами значения, вы получите тот же ответ. Пример коммутативной операции: сложение.

print(3 + 2) # => 5
print(2 + 3) # => 5

Одинаковый результат подтверждает, что операция коммутативна.

2 + 3 = 5     3 + 2 = 5
└──────────┬─────────┘
  одинаковый результат

2 - 3 = -1    3 - 2 = 1
└──────────┬─────────┘
    разный результат

Некоммутативные операции

Но не все операции обладают таким свойством. Например, вычитание является некоммутативной операцией:

print(2 - 3) # => -1
print(3 - 2) # => 1

Перестановка операндов дает другой результат.

В программировании все то же самое

Коммутативность в программировании работает точно так же, как в арифметике. Python строго следует математическим правилам.

Другие некоммутативные операции:

  • Деление: 8 / 2 ≠ 2 / 8
  • Возведение в степень: 2 3 ≠ 3 2

Примеры в коде:

# Деление
print(8 / 2)   # 8 делить на 2 = 4.0

# Возведение в степень
print(3 ** 2)  # 3 в квадрате = 9

Поэтому:

  • Всегда внимательно проверяйте порядок операндов, особенно при работе с незнакомыми операциями;
  • проверяйте коммутативность экспериментально, а не предполагайте ее заранее.

Задание

Напишите программу, которая решает две задачи и выводит ответы на экран — каждый на отдельной строке.

  1. Художник хочет раскрасить 8 секций забора, каждую — в один из 2 цветов. Сколько уникальных вариантов раскраски существует? Используйте оператор возведения в степень **.
  2. Вы с двумя друзьями (итого 3 человека) купили 9 пирожных и хотите разделить их поровну. Сколько достанется каждому? Используйте оператор деления /.
Коммерческий опыт и Трудоустройство

Полезное

  • Подробнее про коммутативность

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

import importlib


def test(capsys):
    expected = "256\n3.0"
    expect_output(capsys, expected)


def expect_output(capsys, expected):
    importlib.import_module('solution')
    out, _err = capsys.readouterr()
    actual = out.strip('\n')

    with capsys.disabled():
        print('\n')
        print(out)

    assert actual == expected
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →