блин (алгоритмическое) |
[Nov. 9th, 2010|09:57 pm] |
Сабж, а ведь действительно!
Пусть S - сумма всех 66 чисел (S = 66x + j), a[0]... a[65] - числа, розданные заключенным, Si - сумма чисел, которые видит заключенный с номером i:
S0 = 66x + j - a[0] S1 = 66x + j - a[1] ... Si = 66x + j - a[i].
Число заключенного дополняет видимую им сумму чисел до суммы всех 66 чисел. Нужно назвать a[i].
a[j] = (66x + j) - Sj
Заключенный, который назовет число, дополняющее видимую им сумму чисел до числа вида 66x + j, назовет свое число, если угадает j (это и есть элемент угадывания). J узнать неоткуда, поэтому нужно перебрать все варианты. Заключенных для этого как раз достаточно, они могут перебрать все остатки от 0 до 65, пронумеровавшись. Если бы им нельзя было говорить перед испытанием, они не смогли бы пронумероваться. Если бы их было меньше 66, они не могли бы охватить весь диапазон. И в том, и в другом случае задача была бы вероятностной, а так это исчерпывающий перебор.
Естественно, никто из них так и не узнает, угадал он или нет. Для уверенности в том, что заключенных не обманут, в условие и введен "охранник-робот", который почему-то предполагается более честным, чем человек, который его программировал. |
|
|
Comments: |
From: | (Anonymous) |
Date: | November 10th, 2010 - 09:22 am |
---|
| | | (Link) |
|
ASISB, если все скажут одинаковое число, то хотя бы один из них угадает, не?
| | | ниспровергатель основ! | (Link) |
|
Числа могут повторяться, следовательно, этого одинакового числа может и не быть.
From: | phantom |
Date: | November 10th, 2010 - 11:17 am |
---|
| | | (Link) |
|
Гениально!
Обидно, что сами не додумались %( | |