Добре, не бях предвидил възможността хората да пият в три кръга и по времето на умиране да получим допълнителна информация. Ето как се променя предишния ми алгоритъм използавйки тази нова информация:
Един човек може да пие 3 пъти през два часа. Има 4 възможности за него:
не 0 2 4 (пие в час)
-------------
0 х
1 х
2 х
3 х
Има 4 възможни изхода за него:
не 11 13 15 (умира в час)
--------------
0 х
1 х
2 х
3 х
Ясно е че ако всеки човек може да кодира 2 бита, то на нас ни трябват 5
човека за кодиране на 1024 бутилки в нашия случай 1000.
Взимаме 1000 бутилки. Номерираме ги:
0 .. 999
Кодираме всяка в 4-въртична бройна система. Например:
567 -> 20313
43210
-----
20313
Значи човек 4 пие от бутилката във 2-ти кръг, човек номер 3 не пие, номер 2
пие във втори, номер 1 в първи, а номер 0 в трети кръг.
След 16 часа виждаме кои са умрели и кога Например.
43210
-----
11030
Десетично 332, значи в бутилка с номер 332 има отрова.
Решенията на хм продължавам да не ги разбирам. Доколкото виждам, той не дава практически алгоритъм. Например нямам представа, той кои хора ще накара да пият и кога от бутилка 567? Силно подозирам, че решенията ни са еквивалентни обаче.
Редактирано от Пaньo Дoнeв на 11.12.07 11:46.