5up

Разминка для мозга

Dec 21, 2008 03:32

Если вы увлекаетесь математикой или программизмомрованием, предлагаю подумать над следующей задачкой:

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

Вопрос для разминки: для какого числа игроков возможно ( Read more... )

Leave a comment

Comments 18

wu_long_cha_fu December 24 2008, 12:29:44 UTC
Возможно для таких n игроков, что 0,5n*(n-1) кратно трём. Число игр для каждого игрока равно n/2 - 0,5 (целое число для всех n, удоволетворяющих первому равенству)

Reply

5up December 24 2008, 21:22:43 UTC
Возможно для таких n игроков, что 0,5n*(n-1) кратно трём.
интересно. но для 4-х или 6-ти игроков чемпионат не проведёшь.

Число игр для каждого игрока равно n/2 - 0,5
абсолютно верно!

Reply


tty01 December 25 2008, 13:46:12 UTC
100500

Reply

стопицот 5up December 25 2008, 19:20:05 UTC
И это правильный ответ!!!
Только... к сожалению... на другой вопрос :(

Reply


daliyana December 26 2008, 20:17:29 UTC
это крикет.

Reply

5up January 3 2009, 23:57:46 UTC
с чего это?
в крикет играет две команды.
http://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BA%D0%B5%D1%82

Reply

daliyana January 10 2009, 23:37:36 UTC
да???о чёрт, я то думала в него играют карты и ежи+фламинго..и маленькая обкуренная девочка..

Reply

songlish January 12 2009, 04:58:07 UTC
Вообще-то, то, что вы говорите, -- это крОкет.
Так-то!

Reply


mathemnikiforov January 10 2009, 09:39:29 UTC
это - обыкновенная комбинаторика
C из N по 3

Reply

подумайте еще! 5up January 10 2009, 21:24:04 UTC
вы, видимо, слишком бегло пробежались по задаче и недостаточно подумали.
смотрите: C из N по 3 -- есть количество разнообразных троек, которые можно выбрать из N элементов, рассчитывается по формуле N!/3!(N-3)!.
для примера выше (где N=9), C=84. и что это нам даёт? 9 игроков можно распределить по 12-ти тройкам, а не 84-м.

Reply

Re: подумайте еще! viktoriyab January 19 2009, 18:02:14 UTC
аху

Reply

Re: подумайте еще! th_octber_cntry January 31 2009, 08:48:45 UTC
понт дороже смысла)

Reply


th_octber_cntry January 31 2009, 08:44:42 UTC
Пример распределения по тройкам девяти игроков следует убрать - это очень хорошая подсказка - слава богу я на нее не обратил внимание.
Ответ:Играть могут количество игроков равной 3n т.е. 3,27,81... Каждый сыграет (n-1)/2
Как реализовать? Делаем класс игрок , класс стол(имеет три переменный "стул",которые являются указателями на объект типа игрок), и зацикленный список столов. Рассаживаем, потом берем 3 игрока и тащим его за след стол, сажаем вместо тамошнего 3 и т.д, пока снова не вернемся за свой стол, где берем 1 игрока и тащим также но в обратном направлении. Когда эти два мудака снова окажутся за своим столом вместе, заканчиваем текущую иитерацию.
Разбиваем игроков на 3 группы(те кто бегал друг за другом по столам и просто постоянно сидел за 1 столом) для них делаем тоже самое просто список столов в этот раз будет меньше в 3 раза. и "столуем" их до тех пор пока не окажется что им достаточно 1 стола.
Все алес.

Reply

5up January 31 2009, 14:00:37 UTC
Супер!
Алгоритм для 3^n верный.

Только тремя в степени n множество числа игроков не ограничивается. К примеру, чемпионат можно провести для 15-ти игроков. Или, скажем, для семи:

123
145
167
246
257
347
356

Reply


Leave a comment

Up