Pull to refresh

Comments 3

Формулу для количества "возможных успешных розыгрышей" во втором подходе слабО вывести? Интересная комбинаторная задачка.

Может не совсем понял суть проблемы, но почему бы просто не закольцевать участников в случайном порядке и чтобы каждый был сантой для соседа справа?

import random as rd

arr = ['Вася', 'Петя', 'Маша', 'Даша', 'Леша', 'Глаша']

rd.shuffle(arr)

for i in range(-1, len(arr)-1):
    print(f'{arr[i]} выбирает подарок для {arr[i+1]}')

Если организатор знает пары, то что ему мешает воспользоваться самым первым способом и генерировать случайные пары до тех пор, пока всё не станет хорошо? А потом их просто разослать. Во-вторых, каким образом предлагается рассылать случайное число от участникам в день розыгрыша, если у них нет интернета? Видимо письмом. Наконец, схема «получи один огромный лист, а затем получи второй с числом, чтобы выбрать человека с первого листа» кажется несколько избыточной и гораздо более склонной к ошибкам (особенно для пожилых участников).

Sign up to leave a comment.