Debitoor is hiring. No bureaucracy, no legacy code, no bullshit, fury continuous deployment, trips #js #node #react #mongo
×Закрыть

Трудный вопрос на собеседовании #8

Продолжаем разбираться с циклом задач «Трудные вопросы на собеседовании».

Какое предложение лучше и почему:

  1. Вы делаете утверждение. Если оно истинно, Вы получаете ровно $10. Если же утверждение ложно, Вы получаете либо больше, либо меньше чем $10, но точно не $10.
  2. Вы делаете утверждение. Вне зависимости, ложно оно или истинно, Вы получаете больше чем $10.
UPDATE: ответ.
  • Популярное

39 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Кстати, мой ответ на задачу — лучше второе предложение, поскольку оно гарантирует создание простого кода, который нельзя будет подвесить хитрыми входными данными типа «я не получу 10$».;)

Присутствующие здесь технари в большинстве своем хотят вместо простого чтения ТЗ либо проигнорировать часть условий, либо додумать что-то свое.@47Это не придирка к точности формулировки условия, это вполне корректный ответ в рамках условия. В условии ничего не было сказано про «остаться после этого всемогущим».@49В условиях задачи сказано «сделать утверждение», не сказано «сделать несколько утверждений плюс условие об обязательности каждого». Смотри массу историй про джинов и прочих золотых рыбок — нельзя загадать «хочу быть всегда здоровым, никогда не стариться, не быть убитым, не прибить себя, не погибнуть в катаклизме или несчастном случае, при этом богатым и счастливым — это все мое первое желание». Потому что после такого собеседования джин скорее всего передумает делать для тебя добро.;)

crypto5, на самом деле просто условия задачи несовместимые с реальностью. Любого кто задаст такое на собеседовании надо отстранять от найма людей, а лучше от людей вообще.

2 Щетинин Сергей ну тогда ты с больштой вероятностью вообще ничего не получишь:) 2 LastHand я не совсем понял где в условии задачи нельзя делать утверждения вида А и Б? А второй вариант очевидно хуже первого потому что в первом ты гарантировано получаешь любую сумму которую пожелаешь. 2 Автор: Решение красивое, но помоему задача не для собеседования. А кто нибудь ее вообще решил без посторонних усилий?

Поправка, противоречие будет если сказать «я не получу $10».

2 LastHand про всемогущего субьекта: твое обьяснение это лишь придирка к точности формулировки задачи и она не меняет смысла проблемы. Проблему можно переформулировать: сможеть ли субьект создать камень который никто не сможет поднять и остаться при этом всемогущим, или попросту утрируя можно ли присвоить некоторому обьекту одновременно свойства P и ~P.

@44.Во шиза. А если сказать «я не получу вообще ничего» вселенная перестанет существовать потому что это противоречит данному условию?

Ответ ’используя следующее утверждение: "Я не получу ни $10, ни $10000«’ не подходит к условиям задачи, поскольку приведенная фраза является двумя утверждениями, а не одним.Господа, а можете ткнуть пальцем — чем второй вариант может быть хуже? Почем вообще могут возникнуть сомнения, что правильный ответ не «второе»?;) Кстати, о приведенной в комментах фразе «А может ли всемогущий субьект создать камень, который он не может поднять? » — конечно же может, ибо во власти всемогущего должно находиться и право ограничить свою всемогущесть, и тот факт, что он после этого перестанет быть всемогущим, не противоречит условию.Вы бы еще про «раньше появилось яйцо или курица» вспомнили — тоже однозначно яйцо, поскольку их еще динозавры несли.;)

Ответ:

Следует выбрать предложение #1, поскольку вы можете обеспечить себе получение произвольно большой суммы денег, используя следующее утверждение: «Я не получу ни $10, ни $10000».Если мы предположим, что утверждение истинно, то это ведет к противоречию, т.к. тогда по правилам вы бы должны были получить $10.Если мы предположим, что утверждение ложно, то для того, чтобы удовлетворить ложности, вы должны получить $10 либо $10000. Однако т.к. вы не можете получить $10 если утверждение ложно, вы должны получить $10000.Конечно, не возброняется поставить любую другую сумму вместо $10000.

Подивився розв’язок: (Не вгадав. Зате мій варіант оригінальніший;)

Товарищи.Суть не в грошах, а в фішка тому, що ви можете «афігітєльно» круті питання ставити:) наприклад прохолодний термояд, теорію струн і доведення NP-повноти, і нафіга вам тоді якесь бабло коли при такому джерелі інформації ви легко досягнете технологічної сингулярності у розвитку...:) Думаю суть в тому, що в першому випадку хоча кількість бабла менша, однак ви отримуєте інформацію, причому на будь-які питання яківас цікавлять, і тому цей варіант набагато крутіший.Отак.

Неопределенность и случайность не одно и тоже.

В какое уравнение? Где в условии сказано про уравнение и что такое «почти все числа»? Программка на вход получает 10000 псевдослучайных boolean и в зависимости от истинности добавляет (или вычитает) к сумме псевдослучайное количество денег (как описано в условии). Естественно всё это происходит в некоторой дельта эпсилон нуля, дабы небыло переполнения разрядной сетки...

Написал простенькую программку и проверил, что при утверждении 2 денег будет больше...:)

задачка мабуть з «битви екстрасенсов» на тему: "прочитай думки автора"Автор мабуть вважає себе великим психологом аки Зігмунд Фрейд, або обчитався Джоеля Спольскі

2 MerlinЖаль не видел ваших записей с формулами кроме согласия с тем что задача не полностью поставлена;) 2 DisturbedГеррингом не увлекаюсь, а матан для матанов...Да если уж задача не до конца сформулирована, то и давать оценку правильное решение или нет тоже как-то не корректно. В этом может и есть смысл этой задачи — посмотреть на то как человек может выкрутиться. Все таки программирование дело творческое и в тоже время с области точных наук. Да и на собеседованиях задачки извращенней иногда задают чем эта.

имхо условий в задаче недостаточно, чтобы делать обоснованные выводы.

2 MerlinА ти не Паша з мехмата і Матеріалайза? 2 ВіртМи знайомі?

aRt: Не волнуйтесь про порезанные формулы, в ваших записях столько ошибок, что никто ничего не потерял. Кроме того поставленная вами для самого себя задача имеет такое же отношение к исходной, как бузина к дядьке в Киеве.Disturbed: Орех же в совершенно простых и понятных терминах описал почему данной формулировки задачи недостаточно. Чтобы проверить ваше утверждение надо знать количество выдаваемых денег, а чтобы знать это количество надо проверить истинность утверждения. Это, наверное, не имеет отношения к тому что хотели проверить этой задачей, но все-таки это правда. И кстати: да, я «матанщик какой-то».Вообще мне это напомнило парадокс Ньюкома, кто не знает и кому интересно может над ним подумать: Представим себе игру, в которой участвуете вы и предсказатель. Предсказатель — это субъект, про которого в задаче известно, что он никогда не ошибается. Вам показывают две коробки — в первой или миллион долларов или пусто, во второй точно тысяча долларов. Вам можно открыть или только первую коробку, или две сразу. Однако за день до того как вы говорите свое решение предсказатель предсказывает ваши действия. То есть на момент когда надо принимать решение, предсказатель уже высказался, но вы разумеется не знаете что он сказал. Если он предполагал что вы откроете две коробки — первую оставляют пустой. Если он предполагал что вы откроете только первую — в нее кладут миллион. Какое решение следует принять?

1) Звідки ви взяли що ймовірність того скільки вам дадуть грошей має рівномірний розподіл, якщо ви вже припускаєте що N обмежене то беріть нормальний розподіл, він більше підходить для реальності.

Подсчеты с нормальным распределением оставляю вам сделать на досуге. мне как то не очень хочется это делать:)...да это и не меняет сути решения задачи... во как...

2) Ніяких обмежень на N не накладається

Никаких ограничений и нету. Где вы их увидели? Число N — любой произвольное, хоть бесконечность. Оно использовалось только для нахождения варианта предположения который будет делать человек.

3) Звідки ви взяли що твердження має бути про те скільки вам дадуть грошей?

А кто-то ставил ограничения на утверждения?:) в условии есть только слово “утверждение”, а какое оно должно быть — нету. Так же как и у вас на слово “утверждение” и его истинности использовано достаточно фантазии явно не с условия задачи;) И вобще, наверное, все думают что 2й варинт лучше, но возникает чувство что здесь подвох и начинаем спасать первый вариант:)

Возможно автор забыл указать какие утверждения разрешены? Потому что я бы выбрал второй вариант и утверждение: я существую (готов пожертвовать потенциальным миллионом в обмен на ответ на этот вопрос:)) ну или там земля вертится!

to aRt: У вас в обгрунтуванні є багато неточностей1) Звідки ви взяли що ймовірність того скільки вам дадуть грошей має рівномірний розподіл, якщо ви вже припускаєте що N обмежене то беріть нормальний розподіл, він більше підходить для реальності.2) Ніяких обмежень на N не накладається3) Звідки ви взяли що твердження має бути про те скільки вам дадуть грошей? Як на мене то вирішувати задачу потрібно з умови.1) Ми досить точно можемо припустити що в нас як у гравця є 2 можливості «сказати і помилитися» та «сказати і не помилитися».2) Ми не можемо з впевненістю сказати що ми будемо праві чи помилимось. Тому я би сказав що обидва варіанти рівноймовірні. Хоча як показує практика якщо двоє льюдей говорять про якусь область то ймовірність помилитися менша в тої котра має більше довсіду, тому розподіл не буде рівномірним, але для академічної задачі можна припустити що він є рівномірним.3) Оскільки в нас є 2 варіанти відповіді (помилитися або сказати правильно) і є 2 стратегії, то можна скласти таблицю| сказав правильно| помиливсястратегія 1×10×10стратегія 2| > 10| > 10Звідси дуже добре видно що друга стратегія абсолютно краща за першу.


Ну если поставить границу в N баксов, чтобы было наглядней, то выходит так:P - вероятностьМ - мат. ожидание (среднее арифметическое)для первого:P(10)=0,5, M(10) = 10P(<10)=0,25, M(10)=0,25, M(>10) = (N - 10)/2 = 45M(общ.) = P(10)*M(10)+P(<10)M(10)M(>10) = 0.5 * 10 + 0.255 + 0.25(N/2-5) = 5 + N/8для второго:P(10)=0, M(10) = 0P(<10)=0, M(10)=1, M(>10) = N/2M(общ.) = P(10)*M(10)+P(<10)M(10)M(>10) =N/2 * 1 = N/2Теперь считаем при каком верхнем значение варианты будут равны.N/2 = N/8 + 53N/8 = 5N = 13,(3)Выходит что при N > 13,(3) лучше 2й вариант, а при 10 < N < 13,(3) лучше 1йтогда по аналогии к некоторым предложениям вначале темы говорим, что я получу сумму которая меньше 13,(3) исключая 10, тоесть [0;10)И(10;13,(3)] из этого выходит что при таком ответе в 1м варианте я получаю сумму от 13,3 до бесконечности, а во 2м от 10 до бесконечности ))).. Выходит варинат предложения зависит от того что скажет человек..З.Ы. Пора завязывать пить во выходным

капец...сайт нагло порезал формулы...БАГА!!!

Ну если поставить границу в N баксов, чтобы было наглядней, то выходит так: P — вероятностьМ — мат. ожидание (среднее арифметическое) для первого: P (10) =0, 5, M (10) = 10P (< 10) =0, 25, M (10) =0, 25, M (> 10) = (N — 10) /2 = 45M (общ.) = P (10) *M (10) +P (< 10) M (10) M (> 10) = 0.5 * 10 + 0.255 + 0.25 (N/2−5) = 5 + N/8для второго: P (10) =0, M (10) = 0P (< 10) =0, M (10) =1, M (> 10) = N/2M (общ.) = P (10) *M (10) +P (< 10) M (10) M (> 10) =N/2 * 1 = N/2Теперь считаем при каком верхнем значение варианты будут равны.N/2 = N/8 + 53N/8 = 5N = 13, (3) Выходит что при N > 13, (3) лучше 2й вариант, а при 10 < N < 13, (3) лучше 1йтогда по аналогии к некоторым предложениям вначале темы говорим, что я получу сумму которая меньше 13, (3) исключая 10, тоесть [0; 10) И (10; 13, (3)] из этого выходит что при таком ответе в 1 м варианте я получаю сумму от 13, 3 до бесконечности, а во 2 м от 10 до бесконечности:)... Выходит варинат предложения зависит от того что скажет человек...З.Ы. Пора завязывать пить во выходным

ну вы даете! Никто не смотрел мульт, как чувак всех облапошивал: рассажи мне мне небылицу, если я с ней не соглашусь, то я дам тебе денег,... Соответственно мужик соглашался со всеми небылицами, и только бравый лодарь сыграл на человеческой жадности его... я забыл название мультика, но очень поучительный... ДЕТКИ, ДАВАЙТЕ БЫТЬ ЛОДАРЯМИ И ДУРИТЬ ЖАДИН! Короче, если предположить, что истина где-то там, как говорил Малдер, то второй выгоден, т.к. его мат. ожидание больше... Если же человек судящий об истине и ведающий казной идиот, то развод «умного» лодаря про < 100 000 000 $ может и сработать, если этот человек опытный, то он скажет, что утверждение ложь — т.к. ты получишь в глаз, а не бабло, а раз ложь — то на свой бакс моральной компенсации...Согласен с Орехом, задача не до конца сформулирована...

Лучший вариант 1. (Учитывая что на собеседовании). Он окажет что ты уверенный в себе человек (будеш получать 10 за правильней ответ).

Если количество моих НЕ ПРАВИЛЬНЫХ утверждений -> 0, то для первого варианта количество заработаных денег Х*10$, для второго вариата — X* (10+a), где Х — количество попыток, а > 0. Т.е второй вариант однозначно выгоднее.Если количество моих ПРАВИЛЬНЫХ утверждений -> 0, то учитывая то что в первом варианте оплата за каждый ответ может колебатся от 0 до бесконечности исключая 10, а во втором варианте от 10 до бесконечности — варианты при количестве проб стремящемся к бесконечности будут одинаковы.—Исходя из вышесказаного очевидно, помоему, что выгоднее выбрать 2й вариант, поскольку от отлично себя показывает в любых ситуациях, при любом количестве попыток в независимотсти от правильности утверждения.

А краще давайте підемо спати — саме час:)

>> “Предположим, что это утверждение истинно......приходим к противоречию....... что и требовалось доказать.” Пробелы заполните? Так, я заповню деякі пробіли. Ваші знання матлогіки зупинились у 19-му сторіччі (== на рівні того, що вчать в школі). Доведення від супротивного в своїй основі містить припущення, що твердження або істинне, або неістинне, і третього не дано. Те, що це невірно, довели в двадцятому столітті, а зараз вчать на другому курсі університету, на парах з матлогіки.

>> Всё ж таки надо постараться угадать что в задаче подразумевается Так, у нас в проекті деякі так робили. Просто є ризик не вгадати.

>> якщо на співбесіді ви продемонструєте знання теореми Гьоделя>> очень очень сильно сомневаюсь:) Можливо, ми з вами проходимо співбесіди в різні компанії:) >> ну, там чёрным по белому пишет — Вне зависимости, ложно оно или истинно. Вам как ещё сказать? Ви не виривайте половину твердження. Ви витягнули з твердження «Якщо Вова важить 100 кіло, то він важчий від мене» фразу «Вова важить 100 кіло». Що, хіба мій варіант «за істину 20, за неістину 30» не задовільняє умові задачі? Істинне твердження чи ні, ви отримаєте більше 10. Ніби збіглось.Про ханойські вежі — якби мені сказали, що є чотири вежі, а розповіли тільки про три, то я б поцікавився про четверту:) Я бачив ваш розв’язок, і чому і поставив своє останнє запитання: Коли визначається істинність твердження? А якщо цього зробити не можна? Ви сказали: «я получу меньше 100 000 000 $, но не 10$». Ну добре. З одного боку, спочатку треба вирішити чи твердження істинне, а потім дати грошей. З іншого, допоки грошей не дадуть, істинність встановити неможливо. Замкнуте коло:)

>> Я полагаю, если правильность вопроса нельзя определить, то и получаемую сумму тогда нельзя определить тоже.Ну от це ви так думаєте. Можливо, що автор задачі думає інакше. Просто умова — неповна. Крім того, якщо на співбесіді ви продемонструєте знання теореми Гьоделя — вам буде плюс:) І, до речі, вміння знайти двозначності — також ціниться:) >> Обратите внимание, что истинность утверждения имеет значение только если мы выбрали первый вариант, от чего ваш вопрос выглядит ещё более академическим.В корені невірно. По-перше, хто сказав, що обидві суми в другому варіанті — однакові? Може за істинне дають 20 баксів, за неістинне — 30, а інакше — 40? По-друге, в другому варіанті так само нічого не сказано про такі твердження. Там сказано, що дають більше десяти баксів і за істинне, і за неістинне — але існують твердження, які не є ані першим, ані другим.І, нарешті, по-третє — вибрати варіант можна тільки знаючи відповідь на моє питання — якщо, наприклад, у відповідь на невиводиме твердження ми отримаємо мільйон — то я беру перший варіант!

Після того, як прочитано кілька коментарів (в яких, думаю, вже є «вірна» на думку автора відповідь), виникає кілька питань: А що трапляється якщо істинність твердження встановити неможливо? (Як відомо завдяки Гьоделю, таке твердження завжди існує:) В який момент відбувається встановлення істинності твердження? Що, якщо твердження стає істинним (чи припиняє бути істинним) в деякий момент часу?

Оба предложения асимптотически эквивалентны:)

Возможно в качестве утверждения надо сказать что-то типа такого: «я получу > 10$», тогда 10 дать не могут т.к. это уже не истинаи меньше 10 тоже т.к. это это будет истинойт.е. ответ — 1P.S. если конечно имелось ввиду что лучше если $$ больше)

Подписаться на комментарии