+133
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
int sum = 100;
int sch = 0;
for (int a50 = 0; a50 <= sum / 50; a50++)
{
for (int a25 = 0; a25 <= (sum - a50 * 50) / 25; a25++)
{
for (int a10 = 0; a10 <= (sum - a50 * 50 - a25 * 25) / 10; a10++)
{
for (int a5 = 0; a5 <= (sum - a50 * 50 - a25 * 25 - a10 * 10) / 5; a5++)
{
sch++;
}
}
}
}
Console.WriteLine(Convert.ToString(sch));
Задача: Подсчитайте сколькими способами можно разменять 1 доллар монетами достоинством 1, 5, 10, 25 и 50 центов. Решать можно как угодно - в лоб перебором, или в общем случае (для произвольной суммы размера и набора монет).
У кого какие варианты еще будут?)
Запостил: ipro,
14 Июня 2013
wvxvw 14.06.2013 16:45 # 0
roman-kashitsyn 14.06.2013 16:48 # +2
anonimb84a2f6fd141 24.06.2013 18:20 # 0
inkanus-gray 24.06.2013 21:32 # +1
anonimb84a2f6fd141 25.06.2013 03:55 # −2
3.14159265 09.12.2013 18:25 # +1
Помнится где-то разоблачал Кнута. Или то Царь, был?
anonimb84a2f6fd141 09.12.2013 19:38 # 0
bormand 09.12.2013 19:48 # 0
3.14159265 11.12.2013 16:48 # +4
Не понять этого может только идиот и/или не читавший книгу.
Кнут в своих трудах использовал специальный mix-assembler. Применяют ли его где-то? Нет. Какое практическое значение трудов Кнута? Оно огромно.
Но более всего меня удивляет вопрос о применимости ФЯ, который задан с того же акка, с которого не так давно за мной бегали и вопрошали о лямбдах в жаве.
anonimb84a2f6fd141 11.12.2013 20:45 # 0
>или не читавший книгу.
Ой, я что-то пропустил?
А с лямбдами в яве все просто: в почти 2014 году ИХ НЕТ
roman-kashitsyn 11.12.2013 21:39 # +2
> Ой, я что-то пропустил?
Книга стоит того, чтобы её прочитать. Русский перевод кошерен.
anonimb84a2f6fd141 12.12.2013 12:25 # 0
roman-kashitsyn 12.12.2013 12:45 # 0
что есть /pr/?
Есть несколько компаний, которые пишут на хачкеле, окамле, кложуре, больше всех, думаю, эрланге. Писать всякие потоковые датадробилки, парсеры, анализаторы и кодогенераторы на фя одно удовольствие. Помню, у лицокниги вроде бы статический анализатор похапе кода был на окамле, pfff.
Можно сходить в гугл и спросить companies using X
Ну и наконец, повторюсь, что твой вопрос не имеет отношения к книге. В книге просто собрано много интересных и красивых идей, связанных с программированием.
wvxvw 12.12.2013 14:46 # 0
roman-kashitsyn 12.12.2013 14:51 # 0
wvxvw 12.12.2013 16:13 # 0
3.14159265 12.12.2013 16:29 # +1
anonimb84a2f6fd141 12.12.2013 18:44 # +1
Место, где сидят цари ФП и пишут хуйню, которую на императивном языке за 15 минут напишет любой непрограммист.
anonimb84a2f6fd141 12.12.2013 18:46 # −2
roman-kashitsyn 12.12.2013 18:56 # +2
Мне, собственно, глубоко индифферентно, будешь ты её читать или нет.
anonimb84a2f6fd141 12.12.2013 19:14 # +1
3.14159265 12.12.2013 19:23 # +2
"Не читал, но осуждаю".
Настоятельно рекомендую прекратить тратить бисер.
anonimb84a2f6fd141 12.12.2013 19:39 # −2
П.С. Просто съеби.
3.14159265 13.12.2013 13:11 # +4
>>"Секс - это скучно. Мне подруга говорила."
guest 13.12.2013 19:39 # −3
Твоя подруга тебе такое говорит? Трахайся с консолечкой - она не броситю
>П.С. Просто съеби.
bormand 13.12.2013 20:08 # +3
Просто съеби.
3.14159265 13.12.2013 20:57 # 0
Слышал звон, да не знаешь где он.
— Вот все говорят Битлы, Битлы а я послушал — так ничего особенного
— Как же тебе удалось попасть к ним на концерт?!
— Да что ты, мне просто знакомый напел...
guest 13.12.2013 23:59 # −4
Уёбище, спрашиваю тебя в последний раз. Что там есть такого, что я не узнаю из других книг?
guest 14.12.2013 01:19 # −4
guest 14.12.2013 01:56 # −4
3.14159265 13.12.2013 21:01 # −1
roman-kashitsyn 11.12.2013 21:41 # +2
guest 14.06.2013 17:15 # 0
wvxvw 14.06.2013 18:22 # 0
Решение перебором "сначала вширь" :)
wvxvw 14.06.2013 18:30 # 0
guest 14.06.2013 23:05 # 0
guest6 23.08.2023 03:08 # 0
tirinox 15.06.2013 02:59 # 0
wvxvw 15.06.2013 10:17 # 0
Так, наверное, будет по-эффективнее, но и сложнее понять.
Dummy00001 17.06.2013 01:14 # 0
bormand 17.06.2013 05:29 # +2
wvxvw 17.06.2013 08:37 # 0
Но вместо цикла есть iterate, в котором с форматированием все нормально, и с ним бы тот же код читался лучше.
wvxvw 17.06.2013 08:49 # 0
bormand 17.06.2013 09:02 # 0
Но зачем? Можно же наваять рекурсивную функцию, которая высрет нужное нам S выражение. А затем просто поюзать ее в макросе.
wvxvw 17.06.2013 09:07 # 0
ЗЫ. Вариант с рекурсивной функцией ничем не отличается кроме бесполезной функции засоряющей рантайм окружение. Проблема не в том как сделать, а в том, что то, что получается в итоге очень тяжело отлаживать, потому что исходного кода нигде нет, и бряк некуда поставить. Функция эту проблему не решит / не лучше чем макрос.
bormand 17.06.2013 10:59 # 0
> Проблема не в том как сделать, а в том, что то, что получается в итоге очень тяжело отлаживать, потому что исходного кода нигде нет, и бряк некуда поставить.
Ну да, это основная проблема макроёбства почти на любом языке.
> Функция эту проблему не решит / не лучше чем макрос.
Согласен ;)
wvxvw 17.06.2013 13:51 # 0
roman-kashitsyn 17.06.2013 09:08 # 0
wvxvw 17.06.2013 09:52 # 0
roman-kashitsyn 17.06.2013 09:54 # 0
Зависит от диалекта
wvxvw 17.06.2013 13:59 # 0
В этом свете совершенно не понятно, почему if таки special operator, а or - нет.
Dummy00001 17.06.2013 12:28 # 0
bormand 17.06.2013 12:41 # 0
multiple-value-bind - вот кто придумал такое название для часто используемой функции?
wvxvw 15.06.2013 10:26 # 0
bormand 15.06.2013 10:40 # +1
wvxvw 15.06.2013 10:47 # 0
bormand 15.06.2013 10:52 # 0
wvxvw 15.06.2013 10:56 # 0
ipro 15.06.2013 13:40 # 0
wvxvw 15.06.2013 14:22 # 0
Ну вот, классическое решение, как в учебнике.
wvxvw 15.06.2013 16:21 # 0
>или в общем случае (для произвольной суммы размера и набора монет).
но почему-то не сходится.
Dummy00001 17.06.2013 15:48 # +1
давно не видел такого макро-фу. наверное только в 90х, во времена асма, где были человеческие препроцессоры.
wvxvw 17.06.2013 23:04 # 0
А вообще, где такое "может" пригодится: например (хз как по-русски) binomial expansion посчитать не вычисляя все промежуточные степени. Т.е. сгенерировать что-то типа ((- (* n (expt x i)) (* (- m n) (expt x (+ n i))) ...) ...) и потом складывать коеффициенты (т.как часть отрицательные, то часть степеней не прийдется вычислять). А руками полиномы больше 5-6 степени просто замучаешься писать.
Dummy00001 17.06.2013 23:22 # 0
в мою защиту: с детства страдал слабостью к фракталам :)
> А вообще, где такое "может" пригодится
во всех тех местах где нужно ваять кучи кода, потому что на оптимизации типа constant propagation и inlining полагаться почти нельзя.
я страдал давным давно таким в плюсах с темплейтами. правда используя темплейты как параметры для темплейтов, очень быстро можно узнать что у компилеров и линкеров все таки есть ограничение на длину символа....
> binomial expansion
гугля говорит "биномиальное разложение"
antibot-00 17.06.2013 15:14 # +2
bormand 17.06.2013 15:17 # 0
P.S. А вообще, после портянок на лиспе смотрится наглядно и понятно ;)
antibot-00 17.06.2013 15:23 # 0
Возможно, просто поискал в старой директории "project-euler" (а там надо лишь ответ) нашелся №31.
bormand 17.06.2013 15:25 # +1
antibot-00 17.06.2013 15:29 # 0
bormand 17.06.2013 15:37 # 0
Это факт, причем, имхо, из-за фолда ;) Сам то по себе алгоритм простецкий.
bormand 17.06.2013 15:43 # 0
Хотя на четвертой странице форума по этой задаче есть вот такое чудо:
Vasiliy 17.06.2013 16:35 # +4
3Doomer 18.06.2013 13:16 # 0
anonimb84a2f6fd141 25.06.2013 03:58 # 0
wvxvw 17.06.2013 18:15 # 0
LispGovno 11.12.2013 23:45 # +1
bormand 12.12.2013 05:24 # +2
LispGovno 12.12.2013 09:20 # +3
guest6 23.08.2023 03:11 # 0