Цитата(bLACK_wINGS @ 28.10.2006 10:42)

этот алгоритм вродь как лучше чем перебор
Как сказать.
На самом деле, этот "алгоритм" - это набор эвристик, уловок, которыми мы пользуемся, решая вручную.
Я не уверен, что все эти уловки имеет смысл объяснять машине. Главное - передать идею. А идея - выжимать из текущей позиции максимум информации. Человек это делает изощренно, а машина может и "в лоб" - она быстрая, поэтому ей достаточно объяснить правила в целом, и сказать, где лучше искать "узкие места". А искать их лучше там, где меньше вариантов.
Один из методов я предложил - считать варианты в каждой строке. Это, в некоторой степени, геморрой, но совсем не такой страшный, как изучение и кодирование всевозможных эвристик.
Кстати, у нас газета "Кроссворды и Головоломки" уже много лет регулярно публикует такие (и многие другие) головоломки. Только там поле 11х11, и набор кораблей больше. Вот, например, сентябрьский номер:
http://www.kig.tvpark.ua/_ARC/2006/KG_06_37.PDF. 10я страница, снизу.
Для 11х11, возможно, нужен более глубокий анализ задачи. Возможно, плясать уже нужно не от строк, а совместить такие подходы: 1) куда можно поставить каждый из оставшихся кораблей, 2) какой корабль можно поставить в каждую из оставшихся клеток, 3) сколькими способами можно *оставшимися* кораблями заполнить каждую строку и, главное, 4) в каком месте поля перебор ответов на эти вопросы отсечет как можно больше вариантов.
Это уже посложнее, но тоже не смертельно.
Так что, карты в руки. Если хочешь - начинай пробовать (это входило в твои планы? ;). Если не совсем понятно, с чего начать - спрашивай, будем вместе делать. Для начала напиши проверялку на дельфях - чтоб файлы грузила, сохраняла, генерила рандомом, и вызывала решение из модуля. А там, пока что - заглушка.
P.S. А я вот сижу тут и думаю... 6 курс... не развернуть ли мне все это по полной на диплом? Очень даже ничего получится
