Просмотров: 14355

Вон из профессии, или сегодня я очень зол!


Внимание! Под катом приведена задача для второго класса церковно-приходской школы, которая была изначально придумана Львом Толстым. Я читал, что сейчас ее правильно могут решить только 30% старшеклассников, примерно только 20% студентов ВУЗов и около 10% работников банков и кредитных учреждений нашей бескрайней самойчитающейвмире рРодины.

Сегодня у меня был очень тяжелый день собеседований: я прослушал 6 замечательных молодых людей претендующих на вакансию программиста. Помимо прочего, я спрашивал эту задачу у каждого из них, но только один с большими пыхами-мыхами, но таки выродил правильное её решение (пометка на полях — парень самоучка, без высшего образования).

Мой шеф сказал мне, что я э... не прав: «Ну, четы почем-зря народ мучаешь, а?». Когда-то я решил эту задачу сам и сразу сходу, кроме того, это чисто алгоритмическая задача, и я считаю, что каждый программист должен решать её на «расслабоне». Этот пост посвящается тем, кому выпала честь закончить второй класс церковно-приходской школы...

Dixi, условие задачи под катом. Сыграем?

задача для программистов шутка кодер упражнение тренинг проверка тест

Итак, обещанная задачка:

Продавец продает шапку, которая стоит 10 р. Подходит покупатель, меряет и согласен взять, но у него есть только 25 р. Продавец отсылает мальчика с этими 25 р. к соседке, типа разменять.

И вот прибегает радостный мальчик и отдает купюры по 10+10+5. Продавец отдает шапку и сдачу в 15 руб.

Через какое-то время приходит соседка и говорит, что его 25 р. оказались-де фальшивые, поэтому она требует отдать ей деньги. Что же делать? Мужик лезет в кассу и возвращает ей деньги.

Собственно, вопрос: Насколько обманули этого продавца?

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

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , ,
Эта запись опубликована: Пятница, 1 июня 2012 в рубрике Литдыбр.

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

Следите за комментариями по RSS
  1. 35?

  2. Ох уж эти "отвлекающие действия" :)

  3. Собиратель слухов

    50рублй

    Не программист

  4. Похоже на 40

  5. В начале у продавца 10р (шапка), потом мальчик принес ему еще 25р, итого 35р. Продавец отдал покупателю 15р и шапку т.е. -25р, у него осталось 10р. . Получается вернулись к началу и тут пришла соседка и забрала 25р, т.е. "обманули" его на 25р.

  6. 35 рублей, не?

  7. опять двадцать пять.

  8. 50 вроде )

  9. А зачем тут вообще что-то подсчитывать?

    У него оказались 25 фальшивых рублей. Ему пришлось их возместить!

    Больше его никто не обманывал =)

  10. 15

  11. Продавец попал на 25р взамен фальшивых.

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

  12. У продавца нет ни товара (10р), ни 25р (отдал соседке). Итого: он в пролете на 35р.

  13. Продавец потерял 50р.

  14. Продавец остался без шапки, 15 рублей сдачи и 25 рублей отданных соседке в обмен на фальшивку. Зато приобрел 10 рублей из обменных денег, которые отдал покупатель за шапку.

    (10+15+25)-10=40

  15. Ну вы даете ))) я не программист, а всего лишь жена программиста, но мне и то ясно как белый день, что мужик в итоге на этой сделке потерял 50 рублей.

    -10 р (отдал шапку аферисту)

    -15 р (отдал сдачу аферисту настоящими купюрами)

    -25 р (возместил деньги соседке)

    Итого: -50 р убыток от сделки.

  16. С учетом цены шапки обманули продавца на 25 рублей. Чего тут думать, простой закон сохранения. У соседа ничего не изменилось по балансу. У покупателя +25. Соответственно у продавца будет -25. Промежуточные преобразования можно выкинуть, ибо служат они только для запутывания.

  17. На 50 рублей же(:

  18. А хотя стоп.. Шапку потерял -10 рублей

    тётке отдал -25 рублей

    итого -35

  19. Возможно я не прав, но сходу приходит на ум следующее: первое соседка плюс, минус на своих остается. Следовательно ее откидываем. Остаются продавец и покупатель и вопрос на сколь прилетел продавец. Но оценив ситуацию видно, что узнать потери продавца можно по навару покупателя, т.е. Отталкиваться от покупателя проще так как он проводит меньше операций. Таким образом он отдал фальшивку т.е. нуль, но при этом получил 15 в качестве сдачи и собственно шапку за 10 руб. Таким образом ючитывая цену шапки продавец потерял 25 руб.

  20. Обманули продавца на 25 рублей. Условие задачие изначально идиотское, непонятно, почему покупатель ему продавцу протягивал 10+10+5 что бы итоге получить сдачу 15. Если откинуть этот бред, то становиться ясно, что шапку он продал за 10 руб именно эту сумму он изначально за неё и просил. То есть он заработал 10 руб, как обычно для него. Но потому пришла соседка и просто забрала 25 руб под очень интересным предлогом. То есть его обманула или соседка или группа лиц вместе с соседкой или (подставьте третий вариант) но обманули его на 25 рублей. И это единственный правильный ответ!!!

  21. 1 разменял +25 (не своих!) -> +10+10+5 (имеет теперь +25р нефальшивых-то!)

    2 отдал +Ш+10+5 (+10р навара за шапку из п.1)

    3 гони назад 25р! - отдал все 25, но 10-то успел наварить за шапку

    итого потери равны 15р

  22. Алексей

    Фигли тут думать: на шапку и 15 руб. Комментатор 51 прав ;)

  23. Не знаю почему не опубликовался с первого раза комментарий, но касательно задачи необходимо мыслить относительно того кто нагрелся на сделке а он отдал ноль получил сдачи 15 и шапку за 10 и того посчитали на сколько нагребли продавца, а касательно соседки то ее можно оставить без внимания, а почему думаю и так понятно.

  24. Приведу свои размышления:

    Задача изобилует не точными формулировками, но так как у автора узнать подробности уже не получится, для начала нужно определиться с условиями.

    1. Вопрос идёт о том на сколько ОБМАНУЛИ, т.е. не конечная прибыль/убыток, а на сколько обманули.

    2. Процедур при которых по условию могут быть обманы 3: получение денег от покупателя, получение разменянных купюр от мальчика, выдача продавщице 25 рублей.

    3. Кто кого обманул мы тоже не знаем. Если деньги были фальшивые, то обманул только покупатель (продавщица просто "забрала своё", хотя и фальшивые деньги не вернула). Если деньги были настоящие, то обмануть могли только мальчик (подменив их в дороге) или продавщица или оба, но покупатель никого не обманывал.

    В итоге, наиболее подходящим условием мне кажется вариант: деньги настоящие, мальчик взял 25, их же обменял на настоящие 10+10+5, покупателю отдали шапку и настоящие 15, продавщица обманом получила 25. Т.е. ответ 25, так как обман только продавщицы.

    Ещё вариант: деньги покупателя поддельные, мальчик всё сделал честно, продажа честная, сдача из честных разменянных денег. Тогда решение такое: 25 были поддельные, разменяны на настоящие, сдача ещё 15 настоящих и обманули на 25+15 = 40. Продавщица получается не обманула, т.к. имела право на компенсацию фальшивок.

    Но поменяв условия можно получить и 50 и 75 и пр. и все эти варианты также будут подходить под условия задачи.

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

  25. Спасибо всем и особенно Никите за детальный многовекторальный разбор задачи, пока интересно.

    В том-то и есть что-то странное в этой задаче, что даже по комментариям виден широкий разброс вариантов ответов.

    А по смыслу вопрос только один: каков убыток продавца от всего случившегося, без каких-то подвохов и многоходовок типа "была ли продавщица в доле с покупателем". Не забываем - это задачка для детей.

    Правильный ответ (по упомянутому учебнику) в принципе уже звучал, но подождем ещё пару дней до официального его оглашения.

  26. X - покупатель, Y - продавец, Z - соседка

    Фальшивка == 0, шапка == 10

    X0 Y10 Z25 # начальное

    X0 Y35 Z0 # взято у соседки

    X25 Y10 Z0 # шапка(==10) + 15 сдачи

    X25 Y-15 Z25 # возврат соседке

    # конечное состояние минус начальное, где 10 из них это шапка

    Y-15 - Y10 = -25

    Логически решать не стоит, потому что все равно запутаешься.

    Хотя мне кажется, что в замкнутой системе было 25 фальшивых, а потерял только продавец.

    В любом случае, я бы такое не спрашивал на собеседовании. И уж точно не показывает крутость программиста.

    Это веселая задачка на изобразить, не более.

  27. Я бы сказал, что продавца обманули ровно на 25 рублей, которые ему не пришлось бы возвращать, если бы деньги были не фальшивыми.

  28. ответ: 35

    10 отдано мошеннику

    25 соседке

  29. с внимательностью туго

    мошеннику отдано 15

    соседке возвращено 25

    итого 40

  30. считаем, что фальшивые 25 руб это \0

    баланс:

    1) 10 (шапка)

    2) + \0 = 10 (взял у покупателя 25 фальшивых)

    3) +25 - \0 = 35 (взял у соседки 25)

    4) -10 -15 = 10 (отдал шапку и сдачу)

    5) -25 = -15 (отдал соседке)

    Разница с п (1) 10 - (-15) = 25

    Кстати, пункты 3 и 4 взаимоисключающие.

  31. пункты 3 и 5, конечно, взаимоисключающие. Пардон.

  32. Гуглите решение правильно: http://lurkmore.to/Задача_Льва_Толстого :)

    От своего ответа (потеря в деньгах 15р) не отрекаюсь, не смотря на то, что сюда следует(?) приписать еще и шапку, как эквивалент 10р. ИМХО, считаю точкой отсчета начало задачи, т.е. продажа шапки таки состоялась по факту и заработанные на ней 10 р должны идти в доход продавца (шапка продана честно!), следовательно от начальной точки задачи они должны быть учтены при расчете с хитровы$банной соседкой :) (ее требование вернуть 25 - 10 пришедшие от честной сделки за шапку)

  33. Спасибо, Комментатор 51 поставил точку. 25 рублей. Но до чего же задачка-то потенциально спорная - вот этим-то она мне и нравится. Лично я её в своё время узнал не из интернета, а теперь вон она уже и в Лурке есть :)

  34. Признаюсь честно, на секунду был уверен что "50р", но все же ответ: 25р ;)

  35. будем считать в комментах: (1-2-3 это наши люди)

    1. Шапка (10 рупи)

    2. 25 фальшивых рупи одной купюрой

    3. 25 мелочью

    после сделки обмена и сдачи

    1. 25 мелочью, а в итоге 10 настоящих рупи

    2. шапка и 15 настоящих рупи

    3. 25 фальшивых рупи

    После того как поднялся кипишь про левое бабло:

    1. 25 фальшивых на руках, и 25 отдать бабе надо

    2. убежал (0)

    3. должна получить 25р.

    В итоге продавец отдаёт 10 которая была после сделки и обмена, плюс докидывает свои 15 (итого на балансе -15), с бабой разобрались, а тут ещё бляха шапки нет! и ещё -10 на балансе. Следовательно 10+15 = -25 на баланс мужику упал. То есть наш субъект побывал в такой ситуации:

    0->10->-15(-25)

    С точки зрения материальных благ, если шапку оценить в 10 рублей, то мы получим два ответа.

    1. Мужик потерял 15 рублей своих кровных и шапку

    2. Мужик потерял 25 рублей

  36. йоп! не успел))))

  37. На 25 рублей, тех, которые фальшивые.

  38. По тому же балансу:

    1) Продавец встрял на возмещение соседке фальшивой купюры : -25р.

    2) Продавец встрял на товар (-10р)+ сдача покупателю (-15р): -25р.

    Итого: -50 р.

    Лурка учит математику.

  39. Комментатор 60

    Не забываем, что продавец еще и поднялся на 25 р., которые получил у соседки. Так что ответ - 25 р. :)

  40. 1. Продавец вернул 25 р соседке.

    2. Продавец получил 10 р. фальшивыми (как он их отличит?)

    3. Какими деньгами продавец отдавал сдачу мошеннику? Если у него было 10+10+5, то зачем он вообще ему давал сдачи, а не взял от него просто 10 р?

    4. Продавец "попал" на шапку - 10 р.

    Итого, в зависимости от п. 3: 25 + 10 + 10 = 35 или 25 + 10 + 15 + 10 = 60 р.

  41. Ой, 10 р фальшивыми учитывать не надо.

  42. Дмитрий

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

    потерял он только 25р.,которые пришлось отдать соседке.

    злоумышленник естественно на столько же всех на.бал)10р. шапка + 15р сдачи

    а соседка-торгашка осталась при своих

  43. Дмитрий

    хотя потерял продавец все-таки не 25р.-поменьше.Наврятли он эту шапку за 10р купил или сам свалял)

    но обманули его именно на 25р

  44. Всех, у кого в ответе вышло больше 25 руб., охотно примут в BSA/RIAA/MPAA - считать ущерб от пиратства. :)

  45. Вячеслав

    тётка довольна, покупатель доволен и продавец будет доволен, когда спихнет фальшивые деньги(выиграет 15р), в итоге никто не пострадал.

  46. Мне кажется что на 15 рублей, так как:

    У нас есть покупатель, продавец и соседка;

    Изначально:

    покупатель 25р(фальшивых)

    продавец: 10р(шапка)

    соседка: 25(настоящих)

    1 действие: покупатель меняет 25 фальшивых единиц на 25 настоящих, итого:

    покупатель 25р(настоящих)

    продавец: 10р(шапка)

    соседка: 25(фальшивых)

    2 действие: покупатель покупает шапку

    покупатель 15р(настоящих)+шапка

    продавец: 10р(настоящих)

    соседка: 25(фальшивых)

    3 действие: приходит соседка и забирает деньги

    покупатель 15р(настоящих)+шапка

    продавец: 15р(убыток)

    соседка: 25(настоящих)

  47. А, действительно получается 25 рублей, упустил тот момент что сравнивать надо было с начальным балансом) а не считать насколько он ушел в минус)))

  48. Шапка покрыта настоящими деньгами из разменных (-10р + 10р = 0) т.е. ничего не потерял.-15р настоящих денег не из своего кармана, а из разменных (+15 - 15 = 0).

    Потом отдал соседке -25р.Итого потерял 25р.

    Можно еще балансик составить: Покупатель пришел с нулем 0р и впарил его за 25р. Продавец взял 0р думая что это 25р.Разменял у соседки: 0р на 25р (-25р у соседки +25р у продавца).Дальше сделка с покупателем: -10р шапка +10р из разменных настоящих - оплата за шапку, -15р из разменных(а не из своего кармана)сдача (-25р). Здесь промежуточно +25р - 25р = 0. Потом пришла соседка с предъявой: обратный размен - 0р (25р фальшивых) на 25р = -25р у продавца.Итого у покупателя +25р, у продавца -25р, соседка в нулях и балансе 0.

    В оборотных рассчетах участвуют только 25 фальшивых рублей реально стоящих 0р.Ничего никуда не исчезает, и ни откуда не появляется. Думал долго.

  49. Даримка (музыковед)

    Можно попробовать дать несколько вариантов ответа, введя в задачу ДОПОЛНИТЕЛЬНЫЕ УСЛОВИЯ.

    Дополнительные условия:

    + какие именно купюры были фальшивыми?

    + кто обманщик

    Эти два условия взаимосвязаны.

    А) источник обмана - покупатель, а единственной фальшивой купюрой была его 25-рублевка.

    Тогда продавец лишился 25 рублей, или 15 рублей+шапки. Обманут только он.

    Итог: 25

    Б) источник обмана - любой (покупатель, мальчик, соседка), при этом фальшивой была лишь единственная купюра в 25 рублей.

    Итог: 25

    В) источник обмана - соседка, 25-рублевая купюра покупателя была настоящей, а фальшивыми были и купюры в 10+10+5 данные ей мальчику на размен, и купюра в 25, с которой она пришла к продавцу жаловаться.

    По условию задачи продавец отдал покупателю в качестве сдачи именно те купюры, которые он получил от мальчика (это важно!), в противном случае ему вообще было бы незачем разменивать 25-рублевку. В таком случае соседка приобрела 50 настоящих рублей, продавец потерял 35 рублей (купюру в 25 + у него осталась одна из фальшивых 10-рублевых купюр), покупатель потерял 15 рублей (эту сумму он получил фальшивыми купюрами в качестве сдачи), мальчик ничего не приобрел и не потерял.

    Итог: 35

    Г) источник обмана - мальчик, который все попавшие к нему настоящие деньги заменяет аналогичными фальшивыми. Результат тот же, с тем отличием, что вместо соседки именно мальчику достается прибыль в 50 рублей.

    Итог: 35

    Д) никто из трех других участников и не думал специально обманывать продавца. Источник обмана - сама финансовая система, в которой случайные купюры могут оказаться как настоящими, так и фальшивыми (наполеоновский вброс фальшивок, например). Различать подделки способна только соседка, да и то не всегда. В этом случае продавец потерял не меньше 25 рублей в результате только этой сделки (если все купюры, которые он отдал соседке в итоге сделки, были настоящими), но мог потерять и 15, или 10, 5, 0, если хотя бы часть купюр, отданных соседке в конце, тоже фальшивки и она их распознать не смогла. Среди купюр 10+10+5, принесенных мальчиком от неё, тоже случайные могли оказаться фальшивыми. Очевидно, что этого продавца регулярно надувают.

    Итог: ?... от 0 до 35, если соседка не всегда различает фальшивки

    Итог: 25, если соседка различает фальшивки всегда

    Е) источник обмана - финансовая система, в которой деньги как таковые - сплошной обман, иллюзия. ВСЕ деньги по сути фальшивы, как изделия фальшивомонетчиков, так и настоящие с виду купюры. Единственная реальная ценность - только шапка.

    В этом варианте у меня вообще нет конкретного числового ответа.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз