Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 13:03 23.04.24 
Клубове / Наука / Хуманитарни науки / Логика Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Алгоритъм със 100 преброители [re: rovado]
Автор Orнeдишaщ (Змей)
Публикувано17.10.05 15:39  



Вижте пък аз какво измислих. Накратко идеята е следната:
Броят всички затворници. При първото си влизане в стаята всеки брои себе си за 1 човек. При следващите влизания затворниците си прехвърлят бройки. Някой затворник дава от своите бройки и сигнализира с лампата. Друг, влязъл след него, взема бройките му и ги добавя към своите, така че сумата на бройките на всички затворници остава равна на броя на влезлите. Който пръв събере 100, вика уво.
Сега подробностите:
Календарът се разделя на 7 фази: Ф0,Ф1,...,Ф6, които са с предварително зададени продължителности и в предварително определен ред. Всеки затворник поддържа личен брояч, като в началото броячите на всички са 0 с изключение на един (няма значение кой), който е 28 (за да се брои не до 100, а до 2^7=128). Затворниците записват броячите си в двоична бройна система. В която и фаза да влезе даден затворник за първи път в стаята, той увеличава брояча си с 1. Освен това всеки път, когато затворникът е в стаята, той се старае да се отърве от някоя по-младша единица в брояча си. Разрядът се избира според фазата: Ф0 съответства на бит 0 в брояча, Ф1 - на бит 1 и т.н. Ако например затворникът влезе в стаята през Ф3, той гледа, дали броячът му съдържа 1 в бит 3 (разрядът на осмиците).
Ако съответният бит е 0, затворникът не прави нищо.
Ако съответният бит е 1 и лампата не свети, затворникът я запалва и намалява брояча си (с 8 в случая), така че съответстващия на фазата бит да се нулира.
Ако съответният бит е 1 и лампата свети, затворникът я гаси и увеличава брояча си (с 8 в случая), при което въпросния бит пак се нулира.
Ако затворникът влезе в първия ден от някоя фаза и лампата свети, той безусловно увеличава брояча си с числото, съответстващо на предходната фаза.
Който пръв получи 128, обявява освобождаването.
Хубавото на алгоритъма е, че изисква всички да влязат по не повече от 7 пъти последователно (при йерархията на преброители числото е около 20). Лошото е, че трябва да се влиза в определена фаза.
Много е трудно да се направи оптимизация на разделянето по фази. Поиграх си малко на ръка, но тази работа явно изисква нещо повече. Най-добрият ми резултат е за следния график: Ф0=420,Ф1=270,Ф2=150,
Ф0=420,Ф1=470,Ф2=500,Ф3=560,Ф4=520,Ф5=510,Ф6=510,
Ф0=300,Ф1=350,Ф2=400,Ф3=510,Ф4=510,Ф5=510,Ф6=510,
и оттук нататък се редуват от Ф0 до Ф6, всички по 510 дни. Получават се средно 4680 дни до освобождаването - повече от решението на Поназнайващ, но предполагам, че една добра оптимизация би могла да намали съществено това време. Най-голяма е вероятността да излязат на 4330-я ден.



Цялата тема
ТемаАвторПубликувано
* Затворниците... rovado   09.10.05 21:41
. * добра задачка zaphod   09.10.05 22:59
. * Re: добра задачка rovado   11.10.05 09:12
. * Ако е за имане... Пaлячo   11.10.05 14:40
. * Re: Ако е за имане... Nedev   11.10.05 17:29
. * Re: Ако е за имане... rovado   11.10.05 18:53
. * Re: Ако е за имане... Пoнaзнaйвaщ   11.10.05 19:01
. * Re: Ако е за имане... Nedev   11.10.05 19:18
. * Re: Ако е за имане... Пoнaзнaйвaщ   11.10.05 19:47
. * Re: Ако е за имане... rovado   11.10.05 20:44
. * Re: Ако е за имане... Пoнaзнaйвaщ   11.10.05 23:42
. * Re: Ако е за имане... Пoнaзнaйвaщ   12.10.05 14:39
. * Re: Ако е за имане... Пaлячo   14.10.05 12:11
. * Re: Ако е за имане... Orнeдишaщ   14.10.05 13:21
. * Re: Ако е за имане... pe   14.10.05 16:29
. * Re: Ако е за имане... pe   14.10.05 17:09
. * Re: Ако е за имане... Пoнaзнaйвaщ   14.10.05 17:14
. * Re: Ако е за имане... Пaлячo   15.10.05 11:41
. * Re: Ако е за имане... Пoнaзнaйвaщ   15.10.05 12:13
. * Re: Ако е за имане... Пaлячo   15.10.05 13:07
. * Re: Ако е за имане... qwe222   14.10.05 00:15
. * Re: Ако е за имане... ГA3   12.10.05 06:28
. * Re: Ако е за имане... Orнeдишaщ   13.10.05 12:28
. * Re: Затворниците... V-6O   10.10.05 20:49
. * Re: Затворниците... Sargon lll   10.10.05 20:57
. * Re: Затворниците... V-6O   11.10.05 13:33
. * не е лошо решението zaphod   11.10.05 21:24
. * Re: Затворниците... Sargon lll   14.10.05 20:59
. * Re: Затворниците... Пoнaзнaйвaщ   11.10.05 18:54
. * Re: Затворниците... Nedev   11.10.05 19:07
. * Re: Затворниците... grg   11.10.05 22:58
. * Re: Затворниците... Илиян   12.10.05 07:18
. * Re: Затворниците... Илиян   12.10.05 07:25
. * Re: Затворниците... pe   13.10.05 16:33
. * Re: Затворниците... Orнeдишaщ   14.10.05 11:21
. * Re: Затворниците... Пoнaзнaйвaщ   15.10.05 13:59
. * ако са 4 или 5 Orнeдишaщ   17.10.05 10:56
. * Re: Затворниците... Milenn   14.10.05 02:29
. * Алгоритъм със 100 преброители Orнeдишaщ   17.10.05 15:39
. * Re: Алгоритъм със 100 преброители pe   17.10.05 18:29
. * Re: Алгоритъм със 100 преброители pe   17.10.05 18:51
. * Re: Алгоритъм със 100 преброители Пoнaзнaйвaщ   17.10.05 23:34
. * Re: Алгоритъм със 100 преброители Orнeдишaщ   18.10.05 11:40
. * Re: Алгоритъм със 100 преброители rovado   22.10.05 12:13
. * Re: Алгоритъм със 100 преброители Пaлячo   31.10.05 12:26
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.