Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/*Японские кроссворды* - решение в Excel - Страница 2 - Мир MS Excel

  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_, DrMini  
*Японские кроссворды* - решение в Excel
Формуляр Дата: Воскресенье, 18.09.2011, 11:36 | Сообщение № 21
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Quote (Hugo)
Обратный процесс - из картинки получить кроссворд - понятно. Решить кроссворд кодом - зачем?

Автоматически получить из картинки корректный кроссворд невозможно без автоматической процедуры его решения.
Посчитать пиксели по битмапу - дело нехитрое, но как вы убедитесь, что полученый кроссворд имеет решение?
Если вручную - то это, скорее, полу-автоматическое построение кроссворда. biggrin
К тому же, вручную легко ошибиться "в свою пользу" - вы ведь уже знаете, что должно получиться.


Excel 2003 EN, 2013 EN
 
Ответить
Сообщение
Quote (Hugo)
Обратный процесс - из картинки получить кроссворд - понятно. Решить кроссворд кодом - зачем?

Автоматически получить из картинки корректный кроссворд невозможно без автоматической процедуры его решения.
Посчитать пиксели по битмапу - дело нехитрое, но как вы убедитесь, что полученый кроссворд имеет решение?
Если вручную - то это, скорее, полу-автоматическое построение кроссворда. biggrin
К тому же, вручную легко ошибиться "в свою пользу" - вы ведь уже знаете, что должно получиться.

Автор - Формуляр
Дата добавления - 18.09.2011 в 11:36
Hugo Дата: Воскресенье, 18.09.2011, 15:56 | Сообщение № 22
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Я такими кроссвордами не увлекаюсь - как-то времени жалко. В дороге всегда за рулём - а когда ещё решать?
Но мне кажется, что составить кроссворд из готовой картинки несложно, и код будет простым - посчитать количество непрерывных групп и количество заполненных ячеек в каждой легко.
И смысл есть - продать журналу.
А вот наоборот - и сложнее, и смысл только собственно в написании кода, но не в применении.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЯ такими кроссвордами не увлекаюсь - как-то времени жалко. В дороге всегда за рулём - а когда ещё решать?
Но мне кажется, что составить кроссворд из готовой картинки несложно, и код будет простым - посчитать количество непрерывных групп и количество заполненных ячеек в каждой легко.
И смысл есть - продать журналу.
А вот наоборот - и сложнее, и смысл только собственно в написании кода, но не в применении.

Автор - Hugo
Дата добавления - 18.09.2011 в 15:56
Формуляр Дата: Воскресенье, 18.09.2011, 16:45 | Сообщение № 23
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Quote (Hugo)
Но мне кажется, что составить кроссворд из готовой картинки несложно, и код будет простым - посчитать количество непрерывных групп и количество заполненных ячеек в каждой легко.

Фокус в том, что кроссворд, составленный по такому, например, битмапу:
0X
X0
- не будет иметь единственно верного решения.
Понятное дело, для кроссворда, скажем,40х60 аналитическое доказательство "сходимости" решения - задача непостижимая. (Если вдруг найдутся на форуме профессиональные математики, было бы очень интересно их мнение - решаема ли эта задача в принципе).
Так что, остаётся только эмпирическая проверка.


Excel 2003 EN, 2013 EN
 
Ответить
Сообщение
Quote (Hugo)
Но мне кажется, что составить кроссворд из готовой картинки несложно, и код будет простым - посчитать количество непрерывных групп и количество заполненных ячеек в каждой легко.

Фокус в том, что кроссворд, составленный по такому, например, битмапу:
0X
X0
- не будет иметь единственно верного решения.
Понятное дело, для кроссворда, скажем,40х60 аналитическое доказательство "сходимости" решения - задача непостижимая. (Если вдруг найдутся на форуме профессиональные математики, было бы очень интересно их мнение - решаема ли эта задача в принципе).
Так что, остаётся только эмпирическая проверка.

Автор - Формуляр
Дата добавления - 18.09.2011 в 16:45
MCH Дата: Вторник, 02.07.2013, 11:53 | Сообщение № 24
Группа: Админы
Ранг: Старожил
Сообщений: 2008
Репутация: 752 ±
Замечаний: ±

Тема заинтересовала, долго вынашивал идею, наконец дошли руки реализовать (раза два переписывал с нуля)
Кроссворд ограничен 50х50 и не более 10 чисел, но это несложно исправить, задав нужные диапазоны

Алгоритм решения: постоянная итерация, пробегаем по строкам и по столбцам пытаясь найти решение с помощью перебора
Данный алгоритм будет медленно работать на больших кроссвордах.
В качестве идеи по ускорению, можно сортировать линии по приоритетности, и пробегать вначале по тем, в которых наибольшее количество открытых клеток, а также наименьшее количество различных сочетаний, но пока лень реализовывать.

PS: В 2003 код работает значительно быстрее чем в 2007/2010, связано с отрисовкой экрана, т.к. на листе используется условное форматирование.
можно конечно отключить обновление экрана, но тогда пропадает красота разгадывания кроссворда
К сообщению приложен файл: JCW.rar (56.7 Kb)


Сообщение отредактировал MCH - Вторник, 02.07.2013, 21:23
 
Ответить
СообщениеТема заинтересовала, долго вынашивал идею, наконец дошли руки реализовать (раза два переписывал с нуля)
Кроссворд ограничен 50х50 и не более 10 чисел, но это несложно исправить, задав нужные диапазоны

Алгоритм решения: постоянная итерация, пробегаем по строкам и по столбцам пытаясь найти решение с помощью перебора
Данный алгоритм будет медленно работать на больших кроссвордах.
В качестве идеи по ускорению, можно сортировать линии по приоритетности, и пробегать вначале по тем, в которых наибольшее количество открытых клеток, а также наименьшее количество различных сочетаний, но пока лень реализовывать.

PS: В 2003 код работает значительно быстрее чем в 2007/2010, связано с отрисовкой экрана, т.к. на листе используется условное форматирование.
можно конечно отключить обновление экрана, но тогда пропадает красота разгадывания кроссворда

Автор - MCH
Дата добавления - 02.07.2013 в 11:53
vikttur Дата: Вторник, 02.07.2013, 17:24 | Сообщение № 25
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

[offtop]А кто-то говорил, что не знает, как макросы писать :)[/offtop]
 
Ответить
Сообщение[offtop]А кто-то говорил, что не знает, как макросы писать :)[/offtop]

Автор - vikttur
Дата добавления - 02.07.2013 в 17:24
MCH Дата: Вторник, 02.07.2013, 19:05 | Сообщение № 26
Группа: Админы
Ранг: Старожил
Сообщений: 2008
Репутация: 752 ±
Замечаний: ±

Цитата (vikttur)
А кто-то говорил, что не знает, как макросы писать :)

[offtop]Здесь задача не на макросы, а в большей степени на математику (комбинаторику), я в своем коде практически не использую объектную модель Excel[/offtop]
 
Ответить
Сообщение
Цитата (vikttur)
А кто-то говорил, что не знает, как макросы писать :)

[offtop]Здесь задача не на макросы, а в большей степени на математику (комбинаторику), я в своем коде практически не использую объектную модель Excel[/offtop]

Автор - MCH
Дата добавления - 02.07.2013 в 19:05
Serge_007 Дата: Вторник, 02.07.2013, 21:06 | Сообщение № 27
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (MCH)
долго вынашивал идею
На мой взгляд - просто великолепное решение. Свой плюс я уже поставил


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (MCH)
долго вынашивал идею
На мой взгляд - просто великолепное решение. Свой плюс я уже поставил

Автор - Serge_007
Дата добавления - 02.07.2013 в 21:06
MCH Дата: Воскресенье, 07.07.2013, 15:54 | Сообщение № 28
Группа: Админы
Ранг: Старожил
Сообщений: 2008
Репутация: 752 ±
Замечаний: ±

Дополнил вторым вариантом решения, с определением приорететности линий.
Для больших кроссвордов есть небольшое увеличение скорости решения
К сообщению приложен файл: JCW2.rar (64.1 Kb)


Сообщение отредактировал MCH - Воскресенье, 07.07.2013, 23:45
 
Ответить
СообщениеДополнил вторым вариантом решения, с определением приорететности линий.
Для больших кроссвордов есть небольшое увеличение скорости решения

Автор - MCH
Дата добавления - 07.07.2013 в 15:54
MCH Дата: Четверг, 24.04.2014, 00:40 | Сообщение № 29
Группа: Админы
Ранг: Старожил
Сообщений: 2008
Репутация: 752 ±
Замечаний: ±

Большой кроссворд (100 на 100 и по 20 чисел) реализовал давно, но забыл выложить. Исправляюсь.
Заложенный алгоритм перебора большие кроссворды решает медленно.
К сообщению приложен файл: JCW3_big.rar (48.4 Kb)
 
Ответить
СообщениеБольшой кроссворд (100 на 100 и по 20 чисел) реализовал давно, но забыл выложить. Исправляюсь.
Заложенный алгоритм перебора большие кроссворды решает медленно.

Автор - MCH
Дата добавления - 24.04.2014 в 00:40
Retar Дата: Пятница, 02.02.2018, 01:02 | Сообщение № 30
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый вечер.
Поднимаю данную тему потому, что появился вопрос по алгоритму. Не решает он вот такой кроссворд, как во вложении. Остается область, которую даже подбором не заполняет. Есть конечно вероятность, что ошибка в числах, но брал его не из газеты или журнала, где опечатки встречаются,а с одного сайта. А там пишут, что проверяются кроссворды на вменяемость перед тем, как выложить. Правда руками я его тоже пока не могу решить пока что)
К сообщению приложен файл: JCW51.7z (45.7 Kb)
 
Ответить
СообщениеДобрый вечер.
Поднимаю данную тему потому, что появился вопрос по алгоритму. Не решает он вот такой кроссворд, как во вложении. Остается область, которую даже подбором не заполняет. Есть конечно вероятность, что ошибка в числах, но брал его не из газеты или журнала, где опечатки встречаются,а с одного сайта. А там пишут, что проверяются кроссворды на вменяемость перед тем, как выложить. Правда руками я его тоже пока не могу решить пока что)

Автор - Retar
Дата добавления - 02.02.2018 в 01:02
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!