Текущий архив: 2003.01.20;
Скачать: CL | DM;
Вниз
Задача для разминки мозгов - практичный вариант Найти похожие ветки
← →
Сатир © (2002-12-28 13:33) [0]Есть компания из N человек. Есть одна бутылка известной жидкости и пустой стакан. Спрашивается, как разделить содержимое бутылки между участниками компании так, чтоб каждый был уверен, что он выпил не меньше 1/N содержимого бутылки. Переливать назад из стакана в бутылку не запрещено.
← →
han_malign © (2002-12-28 14:26) [1]Пипеткой...
З.Ы. А все равно не получится - в любой бутылке остается еще 40 капель... :))
З.З.Ы. Свести N к одному - но это уже алкоголизм...
← →
Ketmar © (2002-12-28 14:43) [2]отобрать стакан и бутылку, мотивируя необходимостью проверки жидкости на качественность. когда напроверяешься до упора, то
а) если осталась жидкость: отдаешь следующему дегустатору
б) если нет больше жидкости: говоришь, что была "паленая".
ну и что, что задача не решена? зато удовольствие получили %-)
Satanas Nobiscum! 28-Dec-XXXVII A.S.
← →
Сатир © (2002-12-28 14:57) [3]2han_malign © (28.12.02 14:26)
пипетки в наличии не имеется
2Ketmar © (28.12.02 14:43)
>ну и что, что задача не решена? зато удовольствие получили %-)
не спеши...
← →
Игорь Досужев © (2002-12-28 15:16) [4]Есть древний способ, как поровну разделить кучку алмазов/золота/жемчуга на две равные части: один человек делит на 2 мешочка, а второй забирает тот мешочек, который ему больше нравится. Ясно, что второй постарается взять тот мешочек, где драгоценностей больше, поэтому первый вынужден делить поровну.
Думаю, можно придумать модификацию для N участников. Например, по очереди наливают, а жребием определяют, кто это выпьет.
← →
Странник © (2002-12-28 15:27) [5]капельмейстер нужен
← →
Сатир © (2002-12-28 15:39) [6]2Странник © (28.12.02 15:27)
ждём-с...
← →
France (2002-12-28 15:46) [7]Если объем бутыля 0,5л, а выпивающих трое...
То делите сами... :)
← →
Сатир © (2002-12-28 16:08) [8]2France (28.12.02 15:46)
а если иначе?
← →
Сатир © (2002-12-28 16:11) [9]2France (28.12.02 15:46)
так даже при таких условиях, если ты считаешь, что это легко, предложи свой вариант.
Я, например, решения не знаю, поэтому и повесил эту задачку здесь.
Да к наступающим праздникам думаю, она будет очень кстати
← →
France (2002-12-28 16:45) [10]Знаю точно, как налить половину стакана. Надо его наклонить и лить до тех пор, пока жидкость не коснется одновременно края стакана и пересечения стенки и дна. Это ровно половина.
← →
McSimm © (2002-12-28 16:47) [11]France (28.12.02 16:45)
Неверно. Стакан к верху расширяется - будет меньше половины.
← →
Сатир © (2002-12-28 17:28) [12]2France (28.12.02 16:45)
плюс к этому нужно учесть, что восприятие положенной 1/N-той части у каждого участника компании разное. Естественно, варианты, когда ты считаешь, что твоя 1/20-я часть бутылки есть её половина, отметается с самого старта.
Вообщем, поделить нужно поровну и честно.
А кто и как это будет делать, вопрос времени и ваших потенциальных способностей.
← →
Сатир © (2002-12-28 19:47) [13]народ, а ведь компания не ждёт!
ведь щаз до драки дойдёт, если не поделите...
← →
Сатир © (2002-12-28 19:59) [14]Ура! У меня кажется есть решение!!!
Так, даю самым умным ещё один день и завтра расскажу свою идею
← →
Sha © (2002-12-28 20:01) [15]Первый наливает, по его мнению, 1/N жидкости в стакан и говорит, что готов ее выпить. Если кто-то считает, что там больше, он имеет право отлить лишнее в бутылку при условии, что затем выпьет остаток. Далее, думаю, ясно.
← →
Сатир © (2002-12-28 20:12) [16]2Sha © (28.12.02 20:01)
много неточностей, да и мой вариант оказался неверным. Только что перезвонил коллеге, грит - халява.
А идея была следующая:
Наливаем целый стакан и даем первому участнику с просьбой отпить положенное. Участник тут же смотрит на бутылку, забывая, что она уже не полная, и отмечает про себя, соответсвенно, меньшую часть. Остаток назад выливаем в батл. Но такой вариант не пройдёт со слабонервными и теми, что закодировались. Ведь каждый в таком случае может надпить больше, чем положено, чем вызовёт всеобщий ропот, гнев и негодование, с последующим рукоприкладством. А это не есть карош, да и не честно совсем...
Значить, тогда решаем дальше, каспада карошие
← →
Sha © (2002-12-28 20:15) [17]2 Сатир © (28.12.02 20:12)
> много неточностей
Это о чем?
← →
Сатир © (2002-12-28 20:23) [18]2Sha © (28.12.02 20:01)
Если кто-то считает, что там больше, он имеет право отлить лишнее в бутылку при условии, что затем выпьет остаток
следовательно, сколько бы вы не отлили себе в стакан, все будут бояться возражать под страхом отпить меньше. Тогда контр-вопрос: дойдет ли до последнего участника компании очередь допить остатки?
← →
Sha © (2002-12-28 20:27) [19]Уже начал праздновать? Тогда, для начала, выполним тестирование состояния основных систем организма.
Тест 1.
1,2,3,4...
Требуется продолжить ряд.
Если продолжить удалось, значит можно продолжать :)
Тест 2.
Требуется продолжить решение Sha © (28.12.02 20:01).
Если удалось, тестирование успешно пройдено :)
Ответ на Тест 2. (Не подглядывать)
Имелось ввиду "остаток в стакане".
← →
Сатир © (2002-12-28 20:39) [20]2Sha © (28.12.02 20:27)
>тестирование состояния основных систем организма.
мля, ну мы же не яд делим!
Ладно, для непьющих считать, что в батле элексир молодости, а вокруг собралась шобла в тыщу душ.
Скажи-ка тогда, начальник, как всех напоить-то в сласть?
← →
Sha © (2002-12-28 20:43) [21]2Сатир © (28.12.02 20:39)
> Скажи-ка тогда, начальник, как всех напоить-то в сласть?
Это обычный аукцион на понижение. Первый наливает себе и говорит: "Я готов это выпить". Затем каждый участник имеет право сказать: "Я считаю, что 1/N меньше, и готов выпить меньше". Так продолжается до тех пор, пока последнему сказавшему это все остальные не говорят "Да черт с тобой - пей". Он выпивает и становится зрителем аукциона между N-1 участниками.
← →
Сатир © (2002-12-28 20:50) [22]2Sha © (28.12.02 20:43)
>участник имеет право сказать: "Я считаю, что 1/N меньше, и готов выпить меньше".
имеет право, но сдаётся мне - не скажет:(
ладно, ты свой выриант отшлифуй до блеска, а я завтра с коммисией переговорю. Но коммисия просила дать красивое решение, а не чёртичто... аукционы какие-то...
... и где вы эти слова берёте...
Да, и альтернативных вариантов неплохо бы поиметь для сравнения, вот как в предыдущей задаче, например, одно такое шешение, другое - совсем другое, и может быть, и лучше...
← →
Sha © (2002-12-28 20:53) [23]Хорошо бы иметь еще альтернативу для значения 2х2 :))))))))
← →
Сатир © (2002-12-28 21:01) [24]Sha © (28.12.02 20:56)
дык, это ж две большие разницы
← →
Sha © (2002-12-28 21:06) [25]Математика - она и на дне бутылки математика. (с) мой.
← →
Сатир © (2002-12-28 21:15) [26]2Sha © (28.12.02 21:06)
расскажешь это дяде Васе
"Если народ хочет выпить, их никакая математика не остановит" (с) Ломоносов
← →
Clickmaker © (2002-12-28 21:21) [27]На самом деле, тот кто живет регулярной алкогольной жизнью (как я, например) тот может легко разлить поровну. Без всякой математики.
← →
ну это я, как кто? (2002-12-28 21:54) [28]2Clickmaker © (28.12.02 21:21)
это называется "человеческий фактор". исключить.
← →
Lola © (2002-12-29 02:36) [29]В молодые годы помнится делили "бульками", делилось достаточно точно. Только уже не помню, сколько булек в бутылке... :)
← →
Сатир © (2002-12-29 13:50) [30]Ну всё - решение готово.
Коммисия рассмотрела все варианты и постановила объявить г-на Ша наиболее близко подобравшимся к верному решению. Но. Но есть одно "но". Нужно чётко оговорить процедуру дележа, чтоб бы в случае, если последнему останется самая большая часть, никому не было обидно.
Да, и ещё. (Ну это уже скорее на моей совести.) Нужно поделить не поровну, а честно. А это две большые разницы.
Так что даю ещё один день на существенное уточнение к предложенному г-ном Ша решению, и будем с этим делом проверять на практике. А как же ещё проверить точность решения и справедливость теории? Совершенно верно. Нужно провести лабораторную работу. К тому же наступающие праздники только будут способствовать благоприятному стечению обстоятельств и положительных результатов.
С Наступающим.
Ждём ваших предложений, уважаемые.
← →
France (2002-12-29 14:03) [31]Предлагаю такое решение. :)
Берете и чем нибудь царапаете отметки на этикетке бутылки.
Каждый выпивает свою долю. Не очень точно, зато честно.
← →
Сатир © (2002-12-29 15:09) [32]2France (29.12.02 14:03)
этикетка отсутствует. Портить поверхность бутылки воспрещено под страхом её разбить.
← →
Sha © (2002-12-29 21:08) [33]2 Сатир © (29.12.02 13:50)
> Нужно чётко оговорить процедуру дележа, чтоб бы в случае, если
> последнему останется самая большая часть, никому не было обидно
Никому и не должно быть обидно - каждый считает, что в отношении него справедливость не нарушена, что он выпил 1/N часть жидкости или больше. По его мнению оставшимся N-1 собутыльникам досталась (N-1)/N часть или меньше, что тоже справедливо :). Как они ее поделят ему не важно, он свое получил: "Мы люди не завистливые, сколько выпил другой - не наше дело". Есть сомнения - смотри условия: "Спрашивается, как разделить содержимое бутылки между участниками компании так, чтоб каждый был уверен, что он выпил не меньше 1/N содержимого бутылки". И ни слова про "обиды" - не гимназистки.
> даю ещё один день на существенное уточнение к предложенному г-ном Ша решению
Сатир © (31.12.02 23:59 :) "А щас будем существенно уточнять, скока будет 2х2..."
← →
SI-riuss © (2002-12-29 23:20) [34]С Ша не согласен.
Хотел бы я быть в этой компании первым, кто будет отмерять свои 1/N. Налью себе свои 2/3 бутылки, и пусть кто пикнет, что замного, придется ему вообще не пить, а то и вовсе бежать в магазин за недостающими -х ml жидкости.
← →
Rouse_ © (2002-12-30 00:21) [35]Есть старинный Русский способ.
Берем 3 стакана, и в каждый отливаем ровно по 7 (семь) булек :)
Варианты с более многочисленными участниками рассчитываются с привлечением техже 7 булек и счетов :))
Вот немного другого рода задача.
Есть функция типа MyFunc(Value: Integer): Integer;
В нее передаются значения.
Значения могут быть или 496 или 678.
Если передано первое значение, то должно вернуться второе и наоборот, в случае переданного второго значения результатом должно вернуться первое.
Задача, для первого класса :)
Нужно написать самый оптимальный алгоритм данной функции.
Желаю успехов
← →
SI-riuss © (2002-12-30 00:48) [36]
if MyFunc=496 then MyFunc:=678 else MyFunc:=496;
А в чем прикол???
← →
Rouse_ © (2002-12-30 01:09) [37]Result := 1174 - Value;
:))
← →
Rouse_ © (2002-12-30 01:11) [38]Логика, Господа, Логика!!! Иначе не быть нам мастерами
Желаю успехов
← →
SI-riuss © (2002-12-30 01:21) [39]Ничего не понял...
Почему
> Result := 1174 - Value;
?
Ведь по условию никаких матаматических вычислений не задавалось, почему получилась сумма?
Или объясни, или все это фигня какая-то
← →
Rouse_ © (2002-12-30 01:43) [40]По условию задавалось, цитирую: Нужно написать самый оптимальный алгоритм данной функции
Важен алгоритм, т.е. логика построения приложения. А результат и у Вас и у меня одинаковый. Но каковы затраты! (проверьте асм код и удивитесь :)
Желаю успехов
Страницы: 1 2 вся ветка
Текущий архив: 2003.01.20;
Скачать: CL | DM;
Память: 0.57 MB
Время: 0.02 c