[#] [Перевод] Построение кроссвордов с помощью языка Wolfram Language (Mathematica)
habrabot(difrex,1) — All
2015-01-29 12:30:03






_Перевод поста Майкла Тротта (Michael Trott), «[Constructing Crossword Arrays Faster][1]». Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно [здесь][2]._ В главе 6 моей книги _Mathematica GuideBook for Programming_, в качестве примера работы со списками я обсудил то, как построить массив, представляющий собой кроссворд. Хотя этот пример был хорош для демонстрации продвинутой работы со списками, тем не менее, использование списков не является оптимальным путем построения массива кроссворда. Сложность добавления нового слова в массив с уже размещенными _n__-__1_ словами составляла для этого алгоритма , что для кроссвордов из тысяч слов даст большую разницу во времени, затрачиваемом на вычисления. Этот алгоритм реализован в данной статье. Когда мы размещаем отдельные буквы слова в некоторой прямоугольной таблице необходимо рассматривать множество различных ситуаций. В результате в статье содержится большее, чем обычно, количество процедурного кода. Хотя некоторые определения функций несколько длинные, благодаря комментариям между шагами вычислений и ветками решений код должен быть довольно простым для чтения и понимания. [Читать дальше →][3]

[1]: http://www.mathematica-journal.com/2009/11/constructing-crossword-arrays-faster/
[2]: http://goo.gl/GOG0Fe
[3]: http://habrahabr.ru/post/249141/#habracut