Комментарии 39
Супер :)
«Вероятно многие из вас решали эту задачку на листке бумаги и гордились тем, что входят в несколько процентов населения земли, способных на это.»
2% — это те люди котрые решают задачу без листка бумаги.
2% — это те люди котрые решают задачу без листка бумаги.
Как-то не вызывают особого уважения такие люди. Чистая механика же.
Вот те, кто сходу решают задачи типа продолжения ряда 1, 11, 21, 1211, 111221,? — вызывают гораздо больше уважения :)
Вот те, кто сходу решают задачи типа продолжения ряда 1, 11, 21, 1211, 111221,? — вызывают гораздо больше уважения :)
Никогда не понимал подобные задачи, ибо через конечное число точек можно провести бесконечное количество последовательностей и все формально будут отвечать заданным условиям.
Требуется найти самую простую подходящую формулу.
А ворос «кошерности» — кто будет определять?
Вы не в состоянии определить, какая функция проще, f(n)=2n для ряда 2, 4, 8 или f(n)=2n^3-38? Но интересные задачи такого рода не такие механические.
Уважаемый borsh.
Я вот люблю суп больше чем борщЪ к примеру.
Хотя у них примерно одинаковые составляющие, но мы же говорим впринципе о еде и том чтобы съесть её.
Во время обеда, вопрос самого лучшего решения для индивидума в следующем:
1) дешевизна продукта в том же объёме;
2) большее получение удовольствия при одинаковых затратах на производство;
3) полезность съеденного и меньшими затратами на уборку.
4) свой вариант??
Я вот люблю суп больше чем борщЪ к примеру.
Хотя у них примерно одинаковые составляющие, но мы же говорим впринципе о еде и том чтобы съесть её.
Во время обеда, вопрос самого лучшего решения для индивидума в следующем:
1) дешевизна продукта в том же объёме;
2) большее получение удовольствия при одинаковых затратах на производство;
3) полезность съеденного и меньшими затратами на уборку.
4) свой вариант??
Суть загадки в ddos твое мозга, потомучто сложно оперировать таким количеством переменных одновременно. На листке получается тупая механика. Попробу решить без листка…
Так я же и говорю: уважаю гораздо больше способных придумать способ решения задачи, чем при известном способе механически провести нужные операции.
Количество одновременно удерживаемых в быстрой памяти объектов крайне сильно влияют на интеллект. При превышении определённого числа становится доступна для понимания рекурсия.
Известен опыт над обезьянами, у которых в стае такой параметр у одних обезьян 2, у других 3 (он не меняется в течение жизни), так вот первые всю жизнь не могли научиться держать камень, удерживать на нем кокос и лупить сверху камнем.
Известен опыт над обезьянами, у которых в стае такой параметр у одних обезьян 2, у других 3 (он не меняется в течение жизни), так вот первые всю жизнь не могли научиться держать камень, удерживать на нем кокос и лупить сверху камнем.
Хорошая задачка. Утверждается, что её дети спокойно решают своим незамутнённым умом.
Наличие компьютера и понимание о чем вообще идет речь — уже делает вас одним из 10% :)
Аттрибуты в виде строк? Автор, у меня почему-то сильное ощущение, что до хаскеля вы писали на похапэ.
Ждем топика: Captcha — Решите задачу Эйнштейна :)
А зачем Вы пишите
А так весьма неплохое решение.
"nationality" =: "Swede"
вместо простого кортежа?А так весьма неплохое решение.
И да, было бы неплохо ввести АТД типа:
и использовать кортежи со строками, отражающими значения. Или даже:
Тогда можно без кортежей.
data PossibleAttrs = Color | Nationanlity | Smokes | Drinks | Pet
и использовать кортежи со строками, отражающими значения. Или даже:
data PossibleAttrs = Color String | Nationanlity String ...
Тогда можно без кортежей.
Мне кажется
выглядит понятнее чем
Синтаксический сахар :)
exists ["smoke" =: "Winfield", "drink" =: "Beer"]
выглядит понятнее чем
exists [("smoke", "Winfield"), ("drink", "Beer")]
Синтаксический сахар :)
Исходник можете где-то выложить?
Посмотрите еще раз внимательнее в текст статьи.
Для красоты в коде была замена некоторых операторов на их юникод-аналоги (->, <-, /=)
Для красоты в коде была замена некоторых операторов на их юникод-аналоги (->, <-, /=)
Текст в статье я видел. Он не компилировался.
Как раз из-за стрелочек.
А на что заменено /=?
Как раз из-за стрелочек.
А на что заменено /=?
За сколько программа выполняется?
$ time ./einstein
Norwegian lives in Yellow house, owns Cat, drinks Water and smokes Dunhill
Dane lives in Blue house, owns Horse, drinks Tea and smokes Malboro
Englishman lives in Red house, owns Bird, drinks Milk and smokes Pallmall
German lives in Green house, owns Fish, drinks Coffee and smokes Rothmans
Swede lives in White house, owns Dog, drinks Beer and smokes Winfield
real 0m0.273s
user 0m0.232s
sys 0m0.004s
Intel Core2 Duo 2GHz, 2Gb RAM
Norwegian lives in Yellow house, owns Cat, drinks Water and smokes Dunhill
Dane lives in Blue house, owns Horse, drinks Tea and smokes Malboro
Englishman lives in Red house, owns Bird, drinks Milk and smokes Pallmall
German lives in Green house, owns Fish, drinks Coffee and smokes Rothmans
Swede lives in White house, owns Dog, drinks Beer and smokes Winfield
real 0m0.273s
user 0m0.232s
sys 0m0.004s
Intel Core2 Duo 2GHz, 2Gb RAM
Исходник можете где-то выложить?
На самом деле 5!^5 / 5! = 207 360 000.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Решение загадки Эйнштейна на Haskell