avva: (Default)
[personal profile] avva
(интересно будет только программистам)

1. Неплохое описание схемы работы с большими массивами без инициализации, при том, что в них может лежать мусор. Это красивый трюк, и изредка действительно полезный; я додумался до него сам как-то в процессе решения какой-то задачи в университете (подробностей не помню, может, задача именно так и была сформулирована), но ни разу не применял его на практике.

2. Я зашел на Project Euler впервые после долгого перерыва, и решил две последние задачки. Получил огромное удовольствие, хоть и написал решения на C не вполне понятно почему. В одной из них мне пригодился фокус из HAKMEM (перебор всех способов выбрать k элементов из n, с помощью битмаски), а в другой - disjoint-set, которым я тоже не пользовался очень давно.

Вообще disjoint-set - волшебно красивая штука. Я помню, что у меня затаило дыхание, когда я впервые увидел. Это алгоритм из Книги, поистине.

3. В связи с одной из задач наткнулся на страничку про MiniSat. Я не знал, что есть соревнования по решению SAT! Хочется найти время и почитать этот, вроде бы относительно простой и тем не менее эффективный, алгоритм. Исходники там есть.

4. Я тут узнал, что не все знают о Project Euler. Друзья, если вы получаете удовольствие от программирования, вам прямая дорога туда. Почти в каждой задаче там надо придумать способ ее решить, который даст ответ достаточно быстро - но суть не в бездумных оптимизациях, а в алгоритмах и структурах данных. Это, может, звучит сухо, но на деле невероятно увлекательно; а еще - умный ход - когда правильно решаешь задачу, получаешь доступ на тему на форуме, где уже решившие обсуждают свои решения и делятся кодом.

Date: 2008-03-16 03:48 am (UTC)
From: [identity profile] arno1251.livejournal.com
Как, интересно, можно точно перевести disjoint-set на русский?

Date: 2008-03-16 06:17 am (UTC)
From: [identity profile] flaass.livejournal.com
Классы эквивалентности.
Я этот алгоритм узнал из "Дисциплины программирования" Дейкстры; там он приписан Мартину Рему. Странно, что в Вики об этом не упомянуто.

Date: 2008-03-16 08:46 am (UTC)
From: [identity profile] mikkim08.livejournal.com
А это точно тот же самый алгоритм ?

Date: 2008-03-16 10:59 am (UTC)
From: [identity profile] flaass.livejournal.com
Насколько я помню, в точности.
Может, описан слегка по-другому, но ключевые идеи все те же.

Date: 2008-03-16 12:55 pm (UTC)
From: [identity profile] arno1251.livejournal.com
Спасибо!

Date: 2008-03-16 07:19 am (UTC)
From: [identity profile] pawa.livejournal.com
Система непересекающихся множеств. См. русский перевод книжки Кормена, Лейзерсона и Ривеста.

Date: 2008-03-16 01:12 pm (UTC)
From: [identity profile] arno1251.livejournal.com
+++ break them up or partition them into a number of separate, nonoverlapping sets +++
Не очень удачный выбор термина, это пример definitio per idem (тождесловия). Выше дано определение как "классы эквивалентности" -- по-моему, то, что надо.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 01:12 pm
Powered by Dreamwidth Studios