{{notification.text}}

MirGames

Хранитель Флейма
09.02.11 01:32
0
Объявляю развлечение :)

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

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

1) Вы придумываете правила и готовите правильный ответ в удобной для вас форме.
2) Создаете архив с ответом и устанавливаете пароль.
3) Публикуете правила в эту тему, и прикладываете к посту архив с ответом.
4) Участники пытаются решить вашу загадку, в установленный срок - неделю.
5) В конце недели вы публикуете ключ от архива с ответом.
6) ???????
7) ВЕСЕЛЬЕ
Отредактировано: 09.02.11 02:42
#2
Хранитель Флейма
09.02.11 02:15
0
antonn
А, вот ты и будешь первым, кто даст решение загадки ;)
#3
Хранитель Флейма
09.02.11 02:56
0
Пары.

Задачку решаем на python, но в качестве исключения разрешено задачку решать на Delphi или С#. Ответы на других языках принимаются, но не засчитываются. В частности, следующая задачка навеяна языком программирования тут не озвученным :)

У программиста Саида, который прогуливал лекции, есть реализация python интерпретатора. При этом сама реализация, оказалась какой-то странной - в ней нет списков, кортежей, и словарей. Так же у Саидки нет доступа в интернет, и нет ни одного модуля стандартной библиотеки (кроме самых-самых, разумеется), и нет возможности использовать классы в работе.

Саидка должен через неделю предоставить решение, достаточное для реализации работы с парами (грубо говоря - создание объекта пары, и способы доступа к первому элементы и ко второму).


Обсуждаем тут, вопросы и уточнения - задавайте, если условия не понятны или не совсем полны. Решения публикуем тут же :)

Ответ.rar
Отредактировано: 09.02.11 02:57
#4
Швец, жнец, на дуде игрец
09.02.11 08:20
0
Отличная идея для конкурса.

А вот решение задачи (без пяти минут Лисп, ага :)):

Код
pair = lambda x, y: lambda func: func(x, y)
car  = lambda pair: pair(lambda x, y: x)
cdr  = lambda pair: pair(lambda x, y: y)

new_pair = pair('hello', pair('world', 'there'))
print "%s %s %s" % (car(new_pair), car(cdr(new_pair)), cdr(cdr(new_pair)))


Вроде по-честному.

Но ты еще про FizzBuzz задачку задай :)
Отредактировано: 09.02.11 08:43
#5
Хранитель Флейма
09.02.11 10:51
0
Nikita Baksalyar
Ты все испортил. Иди отсюдава! :)

Ладно, ладно, молодец, ага. ;)
#6
Хранитель Флейма
09.02.11 10:54
0
Nikita Baksalyar
Пароль trololotrololo.

Только у тебя, надо сказать, более трушное решение, кстати :)
Отредактировано: 09.02.11 10:55
#7
Швец, жнец, на дуде игрец
09.02.11 12:57
0
Ну, значит, продолжать должен я.

Итак, задача состоит в следующем: необходимо сделать запрос по URI http://blog.freegeo.ru/webservice.php, изучить ответ, и отписаться сюда.

Задача, кстати, к программированию имеет косвенное отношение - ее можно решить и без программирования.

P.S. Said и slash - без читов! :)
#8
Хранитель Флейма
09.02.11 13:26
0
Nikita Baksalyar
Ахаха, типа не смотрите исходный код. Ок :)
#9
Limited Edition
09.02.11 16:05
0
Nikita Baksalyar, fireworks
Загадывать не буду.
#10
Швец, жнец, на дуде игрец
09.02.11 16:17
0
Цитата(RzCoDer @ 9.02.2011 - 14:05) [snapback]106755[/snapback]

Nikita Baksalyar, fireworks

Точно.

Поясню решение для всех - среди посылаемых сервером заголовков есть такой:
Код

X-MirGames-Answer-Location: mirg-answer.txt

mirg-answer.txt, собственно, и содержит ответ.

Дальше будет сложнее. А пока пусть Саид еще что-нибудь задаст :)
#11
09.02.11 18:38
0
Цитата(Podust @ Сегодня, 14:17)
[snapback]106756[/snapback]
mirg-answer.txt, собственно, и содержит ответ.

До этого я дошел. Но там в ответе с fireworks было поле Etag, которое я принял за ключ к следущему шагу.
#12
Хранитель Флейма
29.03.11 22:22
0
Задачка.

Условие "A": использовать только операторы языка. Никаких методов, функций и т.п. лабуды.
Условие "Б": не использовать циклы и рекурсию.

Для разминки очень простая задачка. Ответы к этой задаче можно публиковать прямо тут - т.к. ответ очевиден. Собственно эта задачка служит первоисточником для последующей задачи, ответ на который я хотел бы увидеть:

Есть число в двоичном представлении неизвестной длины: 0b01..0111, которое всегда заканчивается произвольным количеством единиц. Задача - заменить перый (если читать справа на лево) ноль на единицу, соблюдая условия А, Б.

-------

Теперь собственно задача которую (вроде бы математического решения не имеет, ВРОДЕ БЫ!) нужно решить.

Есть число в двоичном представлении неизвестной длины: 0b111..01 которое всегда НАЧИНАЕТСЯ произвольным количеством единиц. Задача - заменить первый (если читать слева на право, т.е. так как мы с вами русские книги читаем), ноль на единицу.

-------

И та и та задачка решается математически!
Отредактировано: 30.03.11 03:04
#13
30.03.11 02:13
0
Одно условие убрал? )))
#14
MirGames Dev
30.03.11 02:58
0
Заменить только один бит? Или допускается коцание остальных битов?
#15
Хранитель Флейма
30.03.11 03:05
0
Bengamin
Да, одно условие убрал.
MeF Dei Corvi
Только один.
#16
Хранитель Флейма
30.03.11 16:38
0
Да ладно вам! Решите хотя бы первый случай! :)
#17
MirGames Dev
01.04.11 01:14
0
Не знаю. Не могу найти математического решения, которое не затрагивает другие биты.
#18
Хранитель Флейма
01.04.11 03:11
0
MeF Dei Corvi
:trollface: - вторая задача по честному не решается совсем :) Если знать размер (или допустить что у нас есть метод возвращающий количество бит), то с некоторыми оговорками - решается.

Поэтому решаем просто первую задачку. :)
#19
MirGames Dev
01.04.11 04:50
0
Не знаю) Реквестирую ответ :-)
#20
Хранитель Флейма
01.04.11 05:59
0
MeF Dei Corvi
Ну раз активности не наблюдается, то отвечаю по первому случаю :)

Имеем произвольное число в битовом представлении которое заканчивается на единицы.

Скажем 0b100110011

Если мы к исходному числу добавим единицу (операция сложения), то получим число 0b100110100.
Все что останется это сложить два числа битовой операцией or.

0b100110011 or
0b100110100
___________
0b100110111

^___^

Вторая задача на порядок сложнее.
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}