Share This
Связаться со мной
Крути в низ
Categories
//Монетная кооперация: задача на написание кода на Python

Монетная кооперация: задача на написание кода на Python

27.02.2021Category : Python

В стену вмонтирован специальный аппарат, выдающий монетки. За стеной с каждой стороны стоит человек. Оба они могут взаимодействовать с аппаратом.

Если бросить монетку в аппарат, человек, стоящий за стеной, получит 3 монетки. И наоборот.

monetnaja kooperacija zadacha na napisanie koda na python 3ac029b - Монетная кооперация: задача на написание кода на Python

Если оба человека будут честно тратить свои монетки, чтобы второй получил прибыль (т.е. делиться, share), оба они будут получать по 2 монетки прибыли по очереди.

Но всегда есть вероятность, что кто-то поступит эгоистично (steal): не захочет тратить свои монетки, но с радостью заберет 3 монетки прибыли, если второй поделится.

Задание

Допустим, у каждого человека есть по 3 монетки. Создайте функцию, которая будет высчитывать прибыль обоих людей. На вход функция будет принимать два списка строк. Списки будут представлять поведение этих людей (слова share и/или steal)

Примеры

 balances(["share"], ["share"]) ➞ [5, 5]  # Оба человека тратят по монетке и получают по 3.    get_coin_balances(["steal"], ["share"]) ➞ [6, 2]  # Первый человек получает 3 монетки, второй тратит одну.    get_coin_balances(["steal"], ["steal"]) ➞ [3, 3]  # Никто ничего не тратит и не получает, остаются при своих.    get_coin_balances(["share", "share", "share"], ["steal", "share", "steal"]) ➞ [3, 11]

Примечания

  • В «минус» никто не уйдет, так что числа всегда будут положительными.
  • Слова будут передаваться в нижнем регистре.

Варианты решений

def get_coin_balances(lst1, lst2):     a, b = 3, 3     for i, j in zip(lst1, lst2):         if i == 'share':  a, b = a-1, b+3         if j == 'share':  a, b = a+3, b-1     return [a, b]
def get_coin_balances(r, b):     x, y = 3, 3     for i, _ in enumerate(r):         x, y = [x+2, y] if r[i][:2] == 'sh' else [x+3, y-3];         x, y = [x, y+2] if b[i][:2] == 'sh' else [x-3, y+3]     return [x, y]

— Серия трюков по Python —

? Python Tricks ?

monetnaja kooperacija zadacha na napisanie koda na python 22c4f43 - Монетная кооперация: задача на написание кода на Python

Python трюки »

? Без Спама. Отписка в любой момент.

  • 7 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close