Уведомления

Группа в Telegram: присоединиться | Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Ноя. 11, 2017 21:45:06

n293
Зарегистрирован: 2017-11-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание по программированию: XOR. Решить в функциональном стиле.

Булева функция XOR (сложение по модулю два) задаётся следующей таблицей истинности:

xor(0,0)=0

xor(0,1)=1

xor(1,0)=1

xor(1,1)=0

На вход подаются две последовательности (a₁,…,an) и (b₁,…,bn) из 0 и 1.

Вычислите последовательность из (c₁,…,cn), где каждая cᵢ=xor(aᵢ,bᵢ).

Формат ввода

На вход подаются две строки из 0 и 1, разделённых пробелами.

Первая строка — это последовательность (a₁,…,an).

Вторая строка — это последовательность (b₁,…,bn).

Формат вывода

Выведите последовательность (c₁,…,cn), разделяя каждый элемент пробелом

Примечания

Для решения задачи можете использовать функцию zip.

Пример:
Тест 1
Входные данные:
0 0 1 1
0 1 0 1

Вывод программы:
0 1 1 0


Если с этим еще с горем-пополам справились, то вот тут я вообще не вкуриваю. Помогите пожалуйста!

Отредактировано n293 (Ноя. 11, 2017 21:52:09)

Офлайн

#2 Ноя. 11, 2017 22:03:25

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 242
Репутация: +  37  -
Профиль   Отправить e-mail  

Задание по программированию: XOR. Решить в функциональном стиле.

 a = '0 0 1 1'
b = '0 1 0 1'
c = ' '.join(map(lambda a, b : str(int(a != b)), a.split(), b.split()))
print(c)

Онлайн

#3 Ноя. 11, 2017 22:15:42

n293
Зарегистрирован: 2017-11-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание по программированию: XOR. Решить в функциональном стиле.

Romissevd, спасибо!

Можете пояснить, что делает лямбда-функция?
Я ее даже в отдельную функцию вынес, чтобы продебажиться и понять как она работает, но все равно не очень понятно.

 def aorb(a, b):
    return str(int(a != b))
a = '0 0 1 1'
b = '0 1 0 1'
c = ' '.join(map(aorb(a, b), a.split(), b.split()))
print(c)

Отредактировано n293 (Ноя. 11, 2017 22:17:52)

Офлайн

#4 Ноя. 11, 2017 22:28:03

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 242
Репутация: +  37  -
Профиль   Отправить e-mail  

Задание по программированию: XOR. Решить в функциональном стиле.

lambda

 lambda a, b : str(int(a != b))
эквивалентна
 def aorb(a, b):
    return str(int(a != b))
только короче и не имеет имени

Отредактировано Romissevd (Ноя. 11, 2017 22:28:39)

Онлайн

#5 Ноя. 12, 2017 12:05:59

n293
Зарегистрирован: 2017-11-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание по программированию: XOR. Решить в функциональном стиле.

Romissevd, видимо я неверно выразился

В функцию подается два параметра, если параметр1 не равен параметр2, то возвращается…?

Офлайн

#6 Ноя. 12, 2017 12:35:15

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 299
Репутация: +  35  -
Профиль   Отправить e-mail  

Задание по программированию: XOR. Решить в функциональном стиле.

n293
если параметр1 не равен параметр2, то возвращается…?
возвращается True-истина это что то существующее то есть int(True) == 1 а False это ничего то есть 0 int(False) == 0 более наглядно
 def aorb(a,b):
  if a != b:
    return 1
  else:
    return 0
a = '0 0 1 1'
b = '0 1 0 1' 
print(*list(map(aorb,a.split(),b.split())))

Отредактировано marvellik (Ноя. 12, 2017 12:39:29)

Офлайн

#7 Ноя. 14, 2017 21:50:52

n293
Зарегистрирован: 2017-11-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание по программированию: XOR. Решить в функциональном стиле.

marvellik, спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version