tag:blogger.com,1999:blog-10303035.post639229779709820989..comments2009-06-13T00:53:15.840+04:00Comments on Алёна C++: Пост Get that job at GoogleАлёнаhttp://www.blogger.com/profile/09389124127364799922alenacpp@gmail.comBlogger98125tag:blogger.com,1999:blog-10303035.post-70747817510647534122009-06-10T23:50:05.402+04:002009-06-10T23:50:05.402+04:00Читал, читал, устал, у каждого свое мнение, не зна...Читал, читал, устал, у каждого свое мнение, не знаю дал кто то правильный ответ или нет. Но насчет ответа по поводу 240 бочек. Возьмем первые 24 часа. Пусть вне зависимости от того когда кто выпьет, умрет раб на 24 часу. На каждого раба по 48 бочек(группа1). пусть в какой то группе есть бочка с ядом. По идеи кто то должен умереть. остальные откидываем. в первые же 24 часа, в той группе где приблизительно есть яд - 48 бочек( группа 2) остаются на оставшихся 4 рабов. на каждого по 12 бочек. Кто то из этой группы умирает, остальные откидываем, остается 3 раба на 12 бочек. А они все пьют и пьют, откуда такое здоровье. Из этих же 12 бочек в первый день выпивает каждый оставшийся (осталось 3 раба) по 4 бочки. Остается 2 раба. которые ждут следующего дня. по истечение первых суток у нас есть 4 бочки. вот эти 4 бочки распределяются между рабами в следующем порядке. 1 бочку выпивает 1 раб, 2 бочку выпивает 2 раб, 3 бочку выпивает 1 и 2 раб. 4 бочку никто. После окончания второго дня и узнаем остался кто то жить или нет.<br />Меня лично к этому ответу привели мысли всех вас. У каждого свое мнение, объединивши их месте получился результат. Спасибо за совместный разум.<br /><br /><br />Общее количество бочек 240<br /><br />Первые 24 часа выпивает каждый раб из каждой подгруппы<br /><br />1 группа 48 48 48 48 48 48 240/5 <br />2 группа 12 12 12 12 12 12 48/4<br />3 группа 4 4 4 4 4 4 12/3<br /><br />Получается каждый раб выпьет из 64 бочек и умрет максимум 3 раба, <br /><br /><br />Остало четыре<br /><br />1 раб – 1 бочка<br />2 раб – 2 бочка<br />1,2 рабы – 3 бочка<br />Не тронутая 4 бочка<br /><br />Зависит кто то умрет или нет вот и узнаем кто будет жить а кто не будетАнтонhttp://www.blogger.com/profile/12673944004651236662noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-5923429896292527652009-01-08T16:45:00.000+03:002009-01-08T16:45:00.000+03:00Не читал верхние комменты, честно :) Всего за перв...Не читал верхние комменты, честно :) Всего за первую проверку количество бочек можно разбить на 2^5 = 32 группы. Осталось определить, сколько бочек находится в каждой группе. 1 группа с 0 рабами - максимум 2^5 = 32, 5 групп с 1 рабом - 2^4 = 16, 10 групп с 2 рабами - 2^3 = 8, 10 групп с 3 рабами - 2^2 = 4, 5 групп с 4 рабами - 2^1 = 2, 1 группа с 5 рабами - 2^0 = 1. Итого выходит возможное количество проверяемых бочек = 243 &gt; 240. Если не задействовать группы по 4 и 5 рабов - получается 240.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-6570126073018381102008-09-05T15:50:00.000+04:002008-09-05T15:50:00.000+04:00букву е не надо я описалсяА Б В Г Д Ж З Ибукву е не надо я описался<BR/>А Б В Г Д Ж З ИAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-70892294314371295822008-09-05T15:49:00.001+04:002008-09-05T15:49:00.001+04:00Ответ! Тк в условии сказано что смерть настает в т...Ответ! Тк в условии сказано что смерть настает в течении 24 часов и то что через 48 часов бал,<BR/>а всего 5 рабочих чтоб проверить бочки,нужно понять и двигаться от обратного.<BR/>Те кароль узнал что смерть приходит в течении 24 часов от одного из рабов,<BR/>те 72 часа до бала у него после поимки вора было 6 рабов,за 48 часов осталось 5 рабов и всего 40 бочек,за 24 часа осталось 4 раба и 8 бочек.<BR/>далее идет лог формула,допустим,назавер рабов цифрами 1,2,3,4 бочки назавем буквами а б в г д е ж з и,:<BR/><BR/>Далее формула-<BR/><BR/>1а 2в 3д 4з<BR/>2б 3г 4ж 1и<BR/>3а 4в 1д 2з<BR/>4б 1г 2ж 3и<BR/><BR/>Итог остаеться бочка с ядом и всего 2 рабочих!!!<BR/><BR/><BR/>Кратко но с решением!!!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-53660410877569997672008-07-03T09:18:00.000+04:002008-07-03T09:18:00.000+04:00Если утверждение, что рабы могут сдохнуть в течени...Если утверждение, что рабы могут сдохнуть в течение 24 часов после пробы вина, причем время, прошедшее от пробы до смерти, индивидуально (т.е. разное) для каждого раба, верно, то задача решения, как мне кажется, не имеет. В самом деле, исходя из этого предположения, максимум у нас есть 2 пробы: сначала и через 24 часа. Пробы, осуществляемые по ходу первых (к примеру) 24 часов смысла не имеют, т.к. не понятно как определить результат. Напр. сдохли 2 раба, кто знает от какой бочки? Может два раба пили из отравленной бочки, один сдох на месте, другой через 24 часа, а решение нужно принимать сейчас.<BR/><BR/>На 2 пробы тут не хватает рабов, т.к. тут 3чная система не катит (нету 3го состояния -- надо определять на месте умер раб или нет, и думать, что делать дальше), максимум, что можно отсюда выжать, так это 2 раза применить 2чную систему, но это только 64 бочки.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-33119019987494132502008-06-19T08:15:00.000+04:002008-06-19T08:15:00.000+04:00Да задачка в пять секунд - пусть каждый раб пьет ч...Да задачка в пять секунд - пусть каждый раб пьет через пол чяса из разных бочек 240/5, который помрет - отматать процесс на 24 и в бочку =)<BR/>По больше бы таких задачек - очень нра! спасибо =)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-76798230652468853442008-06-06T18:26:00.000+04:002008-06-06T18:26:00.000+04:00_1 день каждому рабу по 48+8+8+8+8 бочек._Первый у..._1 день каждому рабу по 48+8+8+8+8 бочек._<BR/><BR/>Первый угостил второго своими 8-ю бочками, второй угостил первого своими 8-ю бочками. Если умерли оба - у них всего 16 общих бочек, а не 8. Решение не годится.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-2937258672651324152008-06-01T09:04:00.000+04:002008-06-01T09:04:00.000+04:00И опять я, по шнурам...=)Кладем паралельно оба шну...И опять я, по шнурам...=)<BR/>Кладем паралельно оба шнура. Поджигаем их одновременно так, что-бы когда они прогорят до совмещения, т.е. до такого момента, что если сложить длины остатков, то получится целый шнур. Время которое пройдет будет равно 45минутам.LSVhttp://www.blogger.com/profile/17268844320531544075noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-82525668533181874802008-06-01T08:59:00.000+04:002008-06-01T08:59:00.000+04:00Вот такое решение про бочки с рабами...Делим бочки...Вот такое решение про бочки с рабами...<BR/>Делим бочки для рабов на массивы по 48 + по 8 из каждого чужого, только что-бы не повторялись.<BR/>1 день каждому рабу по 48+8+8+8+8 бочек.<BR/>2 день если умер 1 то это только его собственные бочки из которых пил толко он, если умерло 2, то смотря каких( но это не важно, просто берем ту партию 8ми бочек), каждому оставшимуся по 2+1(т.е. тут едлим на кажого по 2 бочки своих + одана соседа, при этом они не должны пить из этих бочек больше 2х раз, т.е. каждый пьет только 1 раз).<BR/><BR/>Если в 1 день умерло 2, то одну из 8ми бочек оставляем, а из других 7ми пьют оставшиеся 3 раба так, что каждый пьет из 2х своих и 1 чужой, при этом опять без повторов(т.е. каждый раб пьет 3 раза из 3х бочек).<BR/><BR/>В итоге получаем если из этих 3х умрут 2, то пили из одной бочки, если один, то ипл из своей, а если ни одного, то отравлена оставшаяся бочка.<BR/><BR/>При этом потери рабов составляют от 1 до 4ех=)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-68050423867723036432008-05-30T20:02:00.000+04:002008-05-30T20:02:00.000+04:00Вместо 6*2 должно быть 5*2. Да, позор, окончательн...<I>Вместо 6*2 должно быть 5*2.</I><BR/> Да, позор, окончательно убедился, что устный счет не моя сильная сторона. Значит работа в гугле мне не светит. <BR/><BR/>Но задачу надо переформулировать, ибо непонятно, почему вино настолько ценно, что приближенное решение (пожертвовать 5% бочек) тут не катит.<BR/><BR/>Сорри за мусор в комментах…Stas Fominhttp://www.blogger.com/profile/18127426428751477675noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-43640236659799840462008-05-30T15:43:00.000+04:002008-05-30T15:43:00.000+04:002Stas Fomin:Т.е. только пять лишних бочек, по отно...<B>2Stas Fomin:</B><BR/><I>Т.е. только пять лишних бочек, по отношению к условию, можно впихнуть.</I><BR/><BR/>На самом деле не пять, а три.<BR/>Вместо 6*2 должно быть 5*2.Алёнаhttp://www.blogger.com/profile/09389124127364799922noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-56395843319650324682008-05-30T01:52:00.000+04:002008-05-30T01:52:00.000+04:00Нет, извините, я идиот. У меня «Сдвиг на разряд» (...Нет, извините, я идиот. У меня «Сдвиг на разряд» (5 рабов-разрядов это 32 бочки). Соотвественно, при даже если перебирать все комбинации рабов, получится (биномиальный коэфф. C^k_n):<BR/>32+С^1_5*16+С^2_5*8+С^3_5*4+С^4_5*2+C^5*5*1=<BR/>32+5*16+10*8+10*4+6*2+1=245<BR/><BR/>Т.е. только пять лишних бочек, по отношению к условию, можно впихнуть.<BR/>Сорри за беспокойство.Stas Fominhttp://www.blogger.com/profile/18127426428751477675noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-11437300574405557592008-05-30T01:14:00.000+04:002008-05-30T01:14:00.000+04:00Хм. Ошибся. Можно взять и 304 бочки.64+5*64-5*16=3...Хм. Ошибся. Можно взять и 304 бочки.<BR/>64+5*64-<B>5</B>*16=<B>304</B>.<BR/>(включения/исключения — пересечений пять, а не шесть, как я подумал сдуру).Stas Fominhttp://www.blogger.com/profile/18127426428751477675noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-30550679857149094422008-05-30T01:10:00.000+04:002008-05-30T01:10:00.000+04:00Случайно наткнулся на эту задачу. Подумал (не загл...Случайно наткнулся на эту задачу. <BR/>Подумал (не заглядывая в ответы)<BR/>У меня получилось, что можно пятью рабами взять 288 бочек.<BR/>Второй тур, где нужно вычислить конкретную точку — «бинарный пробник» (рабы=разряды), для множеств размером<BR/>16 (тремя рабами), 32 (четыремя рабами), 64 (пятью рабами). <BR/>Первый тур — покрыть исходное множество бочек пересекающимся по рабам множеством распробованных бочек так, чтобы после первого тура было вычислено множество, которое можно оставшимся числом рабов обработать как указано выше.<BR/>Для этого делам следующее разбиение:<BR/>64 бочки не пьет никто.<BR/>Каждый раб пьет по 64 бочки,<BR/>причем 32 бочки у каждого раба свои, а 16 бочками раб «пересекается» с соседним (1 со вторым, второй с третьим, пятый с первым).<BR/>Таким образом покрывается множество размером 64+5*64-6*16=288.<BR/>Три возможных исхода:<BR/>1. Никто не умер — 5 рабов атакуют множество размером 64.<BR/>2. Один умер — 4 раба атакуют множество размером 32.<BR/>3. Двое умерло — 3 раба атакуют множество размером 16.<BR/><BR/>Так что у задачи есть потенциал для закручивания гаек (возможно ли еще больше бочек «распознать» — я не в курсе…).<BR/>Ну либо найдите у меня ошибку, время позднее, мог и ошибится.Stas Fominhttp://www.blogger.com/profile/18127426428751477675noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-65178723509557337292008-05-06T22:33:00.000+04:002008-05-06T22:33:00.000+04:00Я бы немножко поменял решение с состояниями, чтобы...Я бы немножко поменял решение с состояниями, чтобы не было путаницы.<BR/>0 - не умер<BR/>1 - умер после первого захода<BR/>2 - после второго<BR/>Тогда номер захода, когда нужно пить бочку, находится в соответствующем разряде числа. Тогда нет сопоставлений 0 - в первом разряде, 1 - во втором... Правда, мы можем считать с нуля :)<BR/><BR/>С таблетками аналогично. Берём одну таблетку из первой упаковки, две из второй, три из третьей. Число сотых в весе является номером бракованной упаковки.<BR/><BR/>Спасибо за задачку :)<BR/><BR/>P. S. За соседним столом на работе сидит к.т.н., так он сразу начал думать в правильном направлении :)woodroofhttp://woodroof.livejournal.com/noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-66660429103258242462008-05-01T23:42:00.000+04:002008-05-01T23:42:00.000+04:00А вы ведь говорили аська пустая трата времени.... ...<I>А вы ведь говорили аська пустая трата времени.... Ето я к добавлению от 23 апреля....</I><BR/><BR/>Одно дело несколько близких друзей, а совсем другое - непрерывный поток сознания от людей, которых я совсем не знаю..Алёнаhttp://www.blogger.com/profile/09389124127364799922noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-26866096469958271452008-05-01T10:30:00.000+04:002008-05-01T10:30:00.000+04:00А вы ведь говорили аська пустая трата времени.... ...А вы ведь говорили аська пустая трата времени.... Ето я к добавлению от 23 апреля....Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-1992058082585134682008-04-30T21:55:00.000+04:002008-04-30T21:55:00.000+04:002rocker:Да - действительно, в моем методе определя...2rocker:<BR/>Да - действительно, в моем методе определяющим является последовательность смертей. Например, если первым умер раб 1 - значит отравленная бочка в первых 48. Если Последовательность смертей 1 2 3 4 - значит это бочка №1 если 1 2 3 4 5 - значит №2, 1 2 3 5 - бочка №3 итд.<BR/>Т.е. интервал от принятия яда до смерти может быть любой до 24 часов, но одинаковый у всех.Alexeyhttp://www.blogger.com/profile/13002841157580259780noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-21218337597763662262008-04-30T19:10:00.000+04:002008-04-30T19:10:00.000+04:002Alexey:возможно множество случаев, когда все(!) р...2Alexey:<BR/>возможно множество случаев, когда все(!) рабы умрут. И тогда никак не определить, в какой бочке яд.<BR/><BR/>если конкретнее, то есть 120 шансов умереть всем. 120 - умереть четверым. как же найти отравленную бочку?rockerhttp://therocker.ya.ru/noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-70691460803623917422008-04-30T16:04:00.000+04:002008-04-30T16:04:00.000+04:00Хотя люди уже призывают закрыть тему.Рискну предло...Хотя люди уже призывают закрыть тему.<BR/>Рискну предложить свое оригинальное решение,<BR/>кстати имеющее еще одно преимущество, оно позволяет<BR/>решить задачу за 28 часов.<BR/>Итак, разбиваем 240 бочек на 5 частей по 48 бочек<BR/>соответственно каждый из рабов пьет из своей части.<BR/>Через час (выбрано как минимальная временная разница)<BR/>каждая из 5 частей делиться на 4 по 12 бочек в каждой,<BR/>из которых пробуют вино все рабы, кроме того кто пил<BR/>из всех 48 бочек этой группы, далее каждую группу из 12 бочек<BR/>делим на 3 по 4 бочки, каждую из групп по 4 бочки на 2 группы<BR/>по 2 бочек. Все. Поскольку расписать здесь все разбиение трудно,<BR/>приведу разбиение только начиная с 1 группы по 48<BR/>промежуток между дегустациями 1 час (0 - никто не пробует)<BR/>+0ч - 111111111111111111111111111111111111111111111111<BR/>+1ч - 222222222222333333333333444444444444555555555555<BR/>+2ч - 333344445555222244445555222233335555222233334444<BR/>+3ч - 445533553344445522552244335522552233334422442233<BR/>+4ч - 050405030403050405020402050305020302040304020302<BR/>Максимальный промежуток между началом теста и последней смертью<BR/>24+число подходов(5)-1=28 часов<BR/>Замечу, что в отличии от других решений число бочек точно соответствует<BR/>числу рабов необходимых для решения. Также решение не зависит от конкретных<BR/>физиологических свойств реципиентов т.е. смерть может наступить в любой промежуток<BR/>времени от 0 до 24 часов.Alexeyhttp://www.blogger.com/profile/13002841157580259780noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-83836440110465890152008-04-30T10:05:00.000+04:002008-04-30T10:05:00.000+04:00Смущает то, что бочек 240, а не 243... Может автор...Смущает то, что бочек 240, а не 243... Может автор задачи сам не знал правильного решения? Есть один неверный путь в рзмышлениях, который приводит нас к 240-ка. Может автор его и имел ввиду?Screamernoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-89549562834780861232008-04-29T14:54:00.000+04:002008-04-29T14:54:00.000+04:00Уже не меньше 4 раз правильное решение писали. Хва...Уже не меньше 4 раз правильное решение писали. Хватит, пора закрывать тему. А то откровенные глупости люди писать начинают.<BR/><BR/>Или можно переформулировать условие: доказать, что задача решена оптимально, т.е. что нельзя вычислить отравленную бочку из более, чем 243.rockerhttp://therocker.ya.ru/noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-31088906173664441032008-04-29T13:02:00.000+04:002008-04-29T13:02:00.000+04:00простое решение:делим 240 бочек на 6 групп по 40 б...простое решение:<BR/><BR/>делим 240 бочек на 6 групп по 40 бочек, 1 раб распробует вино из всех бочек первой группы, 2 - из второй и тд. Если через 24 рабы остались живы - отравленная бочка в 6 группе, иначе имеем 4 раба и группу из 40 бочек.<BR/><BR/>далее делим 40 бочек на 5 групп по 8 бочек и 4 раба дегустируют вино каждый в своей группе. Через 24 часа либо они остаются живы и отравленая бочка находится в 5 группе, либо в той группе - которую дегустировал умерший раб.<BR/><BR/>таким образом получаем 240-8 НЕотравлееных бочек, которых оправляются на пьянку, а так как у нас осталось 3(в худшем случае) раба - они будут определять в какой бочке отравленное вино:<BR/><BR/>8 делится на 4 группы по 2, 3 раба пробуют из трех групп - если через 24 часа все живы- отравленная в 4 группе. Теперь у нас две бочки - даем ее одному (из 2 выживших) рабу - если он выживает - отравлена другая бочка.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-77140753138293903102008-04-29T04:40:00.000+04:002008-04-29T04:40:00.000+04:00Похоже, в общем случае (N рабов и k дней) рекуррен...Похоже, в общем случае (N рабов и k дней) рекуррентная формула будет такой: <BR/><BR/>M(k, N) = Sum(i = 0, N) { C(i,N) * M(k-1, N-i) }<BR/><BR/>M(1, N) = 2^NAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-11533483769411582792008-04-29T02:55:00.000+04:002008-04-29T02:55:00.000+04:00Да… задачка доставила удовольствие. Первая мысль –...Да… задачка доставила удовольствие. <BR/><BR/>Первая мысль – 5 рабов за один заход могут дать 32 комбинации. Но нужно оставить несколько рабов на второй заход. <BR/><BR/>Выберем те комбинации из 32, при которых остаётся некоторое количество рабов на другой ход. <BR/><BR/>Предположим, два идут на первый (С2/5 = С3/5 = 10, больше брать смысла не имеет), три на последний. <BR/>Тогда за первый заход можем проверить десять групп бочек, остаётся 24 на трёх человек. Много. <BR/><BR/>Так! Но можно же брать не только комбинации, в которых два бита равны единице. <BR/><BR/>Можно брать те, в которых число единиц меньше либо равно двум. Это 16 из 32. <BR/>240/16 = 15. Такой мизер тремя рабами не ловится… Скверно. <BR/><BR/>Мысль: в некоторых случаях на второй ход остаётся больше трёх рабов. Нельзя ли использовать это преймущество? <BR/><BR/>Мы можем проверить 16 групп бочек, используя те пятибитовые комбинации, в которых не более трёх единиц. <BR/>! Но не обязательно количество бочек в этих группах должно быть одинаковым. <BR/><BR/>Для комбинаций, после которых остаётся больше рабов, можно использовать группу с бОльшим количеством точек. <BR/><BR/>Будем учитывать то количество <BR/>бочек, которое мы сможем исследовать остатком рабов. <BR/><BR/>Если после первого эксперимента у нас остаётся 5 рабов, мы можем исследовать с помощью них 32 бочки. Если 4 – 16 бочек. Если 3 – 8 бочек. <BR/>Комбинаций с нулём единиц у нас одна, с одной – 5, с двумя – 10. <BR/>Выделяем группу бочек числом 32 (из которых никто не будет пить), под 00000, пять групп бочек числом 16 для одноединичных комбинаций и 10 груп числом 8 под двухъединичные комбинации. <BR/>1*32 + 5*16 + 10*8 = 192. Мало. Но близко. <BR/><BR/>Блин, а кто сказал, что за первый заход мы можем сгнобить только двух рабов? <BR/>Если мы сгнобим трёх, после этого мы сможем исследовать 4 бочки (но комбинаций из трёх рабов 10, на каждую мы можем выделить по 4 бочки), если у нас останется один раб – с его помощью можно будет проверить две бочки. Ну а если все умрут – на это событие 11111 можно поставить группу в одну бочку. <BR/><BR/>Продолжим ряд: <BR/>1*32 + 5*16 + 10*8 + 10*4 + 5*2 + 1 = 243.Anonymousnoreply@blogger.com