прога Японские кроссворды (предложение разработки)
Модератор: Модераторы разделов
-
zhekas
- Сообщения: 60
- ОС: Gentoo
Re: прога Японские кроссворды
В основном методе есть смысл в подобныхкроссвордах. К примеру, 90*90 по одной еденицы в каждом столбце и строке. Мы берем клетку [1,1] и заполняем её. далее идет основной метод, который сраз указывает, что больше клеток ни в первом столбце ни в первой строке нет. Таким образом мы отметаем сразу 89+89=178 этапов подбора
-
promov
- Сообщения: 384
- Статус: Участник
- ОС: Debian GNU/Linux
Re: прога Японские кроссворды
Cмотри, как я мыслю решение матрицы вышеупомянутой матрицы 5*5 методом перебора+ основным методом:
Начинаем с основного метода, что очень важно.
1б) Что можем закрасить? Ничего
1в) Тогда закрасим что-нибудь
2а) Что можем закрасить? Это, это и это
2б) Что можем закрасить? Ничего
2в) Тогда закрасим что-нибудь
3а) Что можем закрасить? Это, это и это
3б) Что можем закрасить? Ничего
3в) Тогда закрасим что-нибудь
4а) Что можем закрасить? Это, это и
4б) Что можем закрасить? Ничего
4в) Тогда закрасим что-нибудь
5а) Что можем закрасить? Это, это и это
5б) Что можем закрасить? Ничего
5в) Тогда закрасим что-нибудь
Всё, что под литерой б)- это всё вхолостую. Это потеря времени. Эта проверка стоки и стобца. Вхолостую, повторяю. В кроссвордах посложнее это не потеря времени, а в подобных потеря.
Метод перебора в данном соучае времени не теряет. Он предположит первую клетку и будет идти клетка за клеткой, не возвращаясь к пройденным клеткам.
Начинаем с основного метода, что очень важно.
1б) Что можем закрасить? Ничего
1в) Тогда закрасим что-нибудь
2а) Что можем закрасить? Это, это и это
2б) Что можем закрасить? Ничего
2в) Тогда закрасим что-нибудь
3а) Что можем закрасить? Это, это и это
3б) Что можем закрасить? Ничего
3в) Тогда закрасим что-нибудь
4а) Что можем закрасить? Это, это и
4б) Что можем закрасить? Ничего
4в) Тогда закрасим что-нибудь
5а) Что можем закрасить? Это, это и это
5б) Что можем закрасить? Ничего
5в) Тогда закрасим что-нибудь
Всё, что под литерой б)- это всё вхолостую. Это потеря времени. Эта проверка стоки и стобца. Вхолостую, повторяю. В кроссвордах посложнее это не потеря времени, а в подобных потеря.
Метод перебора в данном соучае времени не теряет. Он предположит первую клетку и будет идти клетка за клеткой, не возвращаясь к пройденным клеткам.
Зачем хорёк пошел в ларёк, зачем барсук полез на сук...
Мораль легко уразуметь: зачем на бал пришёл медведь?
Мораль легко уразуметь: зачем на бал пришёл медведь?
-
zhekas
- Сообщения: 60
- ОС: Gentoo
Re: прога Японские кроссворды
смотри пост выше Вот. Таким образом в том кроссворде у меня будет всего 89 этапо(по одному в каждой строке кроме последнего). А у тебя гораздо больше (Только в последней строке ты пройдешь 89 этапов и то когда точно установишь все остальные). Какая логика.
-
promov
- Сообщения: 384
- Статус: Участник
- ОС: Debian GNU/Linux
Re: прога Японские кроссворды
Вот, мы написали одно и тоже только разными словами. В метод перебора это тоже используется, только несколько по другому. Ты отмёл 178 этапов подбора сразу, а я по одной клетке буду отметать. Но в скорости-то я не проиграю, ибо 178 это 178 клеток, как ни крути, всё равно нужно обозначить каждую отдельно, мы же оба это понимаем. Тут всё пока на равных. А вот дальше
В методе перебора+ основном методе такиъх этапов 5! (если матрица 5*5)
Первый этап- это рассмотр первого стобца и первой стоки (левая крайняя клетка имеет координаты 1, 1)
Второй этап- это рассмотр второго стобца и втоой стоки (левая крайняя клетка имеет координаты 2, 2)
Третий этап- это рассмотр третьего стобца и третьей стоки (левая крайняя клетка имеет координаты 3, 3)
Четвёртый этап- это рассмотр четвёртого стобца и четвёртой стоки (левая крайняя клетка имеет координаты 4, 4)
ПЯтый этап- это рассмотр пятого стобца и пятой стоки (левая крайняя клетка имеет координаты 5, 5)
И всё вхолостую. Кроме пятого рассмотрения.
Да ты всё равно молоток, что ты... Такую работу провенуть!
Зачем хорёк пошел в ларёк, зачем барсук полез на сук...
Мораль легко уразуметь: зачем на бал пришёл медведь?
Мораль легко уразуметь: зачем на бал пришёл медведь?
-
zhekas
- Сообщения: 60
- ОС: Gentoo
Re: прога Японские кроссворды
Ну и тебе надо заниматься проверкой. Ьы же не только клеточки закрашиваешь. А ты не будешь эти 178 клеток заполнять? они у тебя останутся пустыми чтоли?
Ага, а если 90*90, то 90! чтоли. При всем желании я бы застрял там надолго(может даже навсегда). Щас специально прошел 90*90 получилось 0.3 секунды.
Ошибаешься таких этапов всего 5 будет, даже не 5 а всего 4. По одному в каждой строке, кроме последней. Так как предыдущюю строку мы уже закрасили полностью за один этап.
Кстати, у меня основная матрица может принимать три значения: yest - когда точно есть, net - когда точно нет и pusto - когда неизвестно,
поэтому на первом этапе перебор закрасит [1,1] - yest, Основной метод закрасит [1,i] - net [i,1] - net. и у меня останется матрица 4*4 и 89*89 соответсвенно.
А у тебя их будет 5!. Это только на 5*5. А если 90*90, то 89 против 90! чувствуешь разницу.
В методе перебора+ основном методе такиъх этапов 5! (если матрица 5*5)
Ага, а если 90*90, то 90! чтоли. При всем желании я бы застрял там надолго(может даже навсегда). Щас специально прошел 90*90 получилось 0.3 секунды.
Ошибаешься таких этапов всего 5 будет, даже не 5 а всего 4. По одному в каждой строке, кроме последней. Так как предыдущюю строку мы уже закрасили полностью за один этап.
Кстати, у меня основная матрица может принимать три значения: yest - когда точно есть, net - когда точно нет и pusto - когда неизвестно,
поэтому на первом этапе перебор закрасит [1,1] - yest, Основной метод закрасит [1,i] - net [i,1] - net. и у меня останется матрица 4*4 и 89*89 соответсвенно.
А у тебя их будет 5!. Это только на 5*5. А если 90*90, то 89 против 90! чувствуешь разницу.
-
zhekas
- Сообщения: 60
- ОС: Gentoo
Re: прога Японские кроссворды
Выкладываю сюда консольную программу решающую Японские кроссворды, написанную на freepascal, с примерами. В архиве содержатся: исходник JAPAN722.pas, исполняемый файл JAPAN722 и примеры в виде текстовых файлов, которые(примеры) находятся в папке japex.
Перед запуском JAPAN722 убедитесь, чтоб в той же дирректории находилась папка japex. В программе нужно вводить только имя файла (без пути).
Перед запуском JAPAN722 убедитесь, чтоб в той же дирректории находилась папка japex. В программе нужно вводить только имя файла (без пути).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
socr
- Сообщения: 35
- ОС: Ubuntu Linux
Re: прога Японские кроссворды
Если кому интересно могу выложить свой вариант...
-
zhekas
- Сообщения: 60
- ОС: Gentoo
Re: прога Японские кроссворды
Вот, собственно, моя консольная программа решающая Японские кроссворды на C++ jsolver
-
OCTAGRAM
- Сообщения: 28
- ОС: Mac OS X
Re: прога Японские кроссворды
Если интересно, вот и моя версия: http://sources.codenet.ru/download/3207/MGET_PAS.html
If you want to get to the top, you have to start at the bottom
-
abrlinux
- Сообщения: 2
- ОС: Ubuntu 9.04
Re: прога Японские кроссворды
pluton8, я так понимаю, автор вот етого проекта: https://jcw.svn.sourceforge.net/svnroot/jcw/trunk
Хочу спросить, были ли какие-то дополнительные доработки помимо того, что находится в svn? Хотелось бы добавить пункт "Решение кроссворда". Просто может у автора уже есть какие-то дополнительные наработки, чтобы по второму разу не писать их.
Хочу спросить, были ли какие-то дополнительные доработки помимо того, что находится в svn? Хотелось бы добавить пункт "Решение кроссворда". Просто может у автора уже есть какие-то дополнительные наработки, чтобы по второму разу не писать их.
-
Voral
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: прога Японские кроссворды
pluton8 писал(а): ↑25.06.2008 11:13promov , спасибо за объяснения, но я пока хочу написать прогу для решения вручную, просто оболочку.
авторешалка мож будет пожже
как я понимаю, начать надо с морды, то есть рисование поля, клацание мышей и клавиатурой. какой виджет юзать, и как правильно это сделать?
Да элементарно. QLabel или QLineEdit. Тут или бордюром решать, или подложку сделать нужного цвета, а виджеты размещать на какомто расстоянии.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?