![]() Форум мехмата МГУ по высшей математике
| Пользователям: | Аксиома — это истина, на которую не хватило доказательств. |
| Форумы > Математика > Высшая математика > Тема |
| Объявления | Последний пост | |
|---|---|---|
| Рекомендации по использованию теха в нашем форуме | 07.10.2009 17:41 | |
| Вакансия Perl программиста в ABBYY Language Services | 24.01.2012 18:23 | |
| Московского математического общество объявляет конкурс ММО для молодых ученых 2012 года | 23.04.2012 01:34 | |
14.07.2009 23:20 Дата регистрации: 2 года назад Посты: 2 | Есть поле букв, которое состоит из шестигранников, необходимо перебрать... Всем добра! Никак не могу найти оптимального решения для моей задачи. Есть поле букв, только состоит не из квадратов, а из шестигранников. Картинка. Задача перебрать все возможные варианты, т.е. найти все возможные слова. Простой перебор - слишком медленно. Редактировалось 1 раз(а). Последний 15.07.2009 00:50. |
16.07.2009 18:49 Дата регистрации: 2 года назад Посты: 6 539 | Будем хитрить. Если простой перебор - слишком медленно, то можно использовать тот факт, что в языке - не все возможно. Например, не бывает слишком длинных слов, поэтому можно ограничить сверху длину перебора. Затем, есть невозможные пары, тройки и т.п. букв, их тоже можно исключить из перебора, и т.п. В общем, здесь много доп. возможностей сильно укоротить перебор. |
17.07.2009 16:45 Дата регистрации: 3 года назад Посты: 1 799 | Уточните Имеется ли ввиду, что слова должны получаться последовательным прохождением полей, начиная с произвольной точки и возможны ли циклы (повторы проходимых полей)? |
17.07.2009 17:07 Дата регистрации: 2 года назад Посты: 2 | хм Да - мы проходим полследоватьельнго, хоть зиг-загом, хоть вверх, хоть вниз. Буквы можно использовать только 1 раз каждую. Те все равно только перебор ? |
18.07.2009 01:11 Дата регистрации: 3 года назад Посты: 1 799 | Перечисление Конечно, любая задача на перечисление сводится к этому самому перечислению. Единственное, над чем стоит думать, это: 1) как устранить повторы маршрутов , 2) как устранить повторы слов (у Вас имется одинаковые буквы, записанные в разных клетках) , 3) как не пропустить ничего. Тот факт, что у Вас не произвольный граф, а , скажем так, "гексагональный", имеет значение только для выбора наглядного упорядочения клеток, что позволяет строить маршруты без повторов и без пропусков. Для обеспечения отсутсвия в списке совпадающих слов, видимо, оптимальным является выписывание их в лексикографическом порядке (правда. вставка новых слов внутрь уже построенной последовательности потребует постоянной перестройки ряда (сдвиг на единицу вправо). Но ничего не поделаешь. |
19.07.2009 10:15 Дата регистрации: 3 года назад Посты: 9 | Относительно бесполезный для данной задачи комментарий. Про перечисление. Есть всякие детские задачи про спички. Скажем, уберите три спички, чтобы осталось три квадрата. Так вот в большинстве из них есть "ход конём" - перебирать не спички, которые надо переложить, а квадраты, которые останутся. В этих задачах квадратов всегда меньше. В Вашем случае задача несколько иная, но всё же стоит думать о том, нельзя ли перечислять не маршруты, а что-нибудь другое. Например, для большой карты, возможно, продуктивнее составить таблицы координат каждой буквы (в смысле одна таблица - для буквы A, в которой перечислены пары координат ячеек с "A", другая - для B и т.д.), а затем, начиная с них, перебирать слова, которые откладывать от данной начальной буквы. |
19.07.2009 22:45 Дата регистрации: 3 года назад Посты: 1 799 | Про полезный комментарий Оригинальное замечание про "ход конем" в детских задачках штука оригинальная, но совершенно не уместна в тех ситуациях, когда задание состоит не в поиске хода конем, а в выписывании всех возможных ходов (и не только конем). Впрочем, г-н Eastern.man это, вероятно, о чем-то таком догадался: Но по условию перечислять нужно именно МАРШРУТЫ = СЛОВА. Конечно, условие можно представить и в иной форме, но суть не изменится, т.к. задача все-таки о выписывании всех возможных путей в графе, совмещенной с некоторым правилом отождествления. И думать придется именно об этом. Настоящая задача имеет наглядную форму, на нее и рассчитывайте. |
20.07.2009 10:43 Дата регистрации: 3 года назад Посты: 9 | Место для хода конём Ну да, здесь действительно надо перебирать пары, Единственное возможное "принципиальное" изменение алгоритма, как я уже сказал, начинать перебор с другой стороны пар - со слов. Но для оптимизации здесь богатое поле. Например, интересно подумать, как учитывать форму поля - скажем, узкие выступы. |
21.07.2009 00:42 Дата регистрации: 3 года назад Посты: 1 799 | Возможно Действительно, в процессе работы могут возникнуть идеи "оптимизации", но это не в обсуждении, а в процессе работы. Так что нужно взять некоторый алгоритм выписывания и начинать выписывать, а в процессе работы могут придти и идеи. |
| Copyright © 2000−2011 MathForum.Ru & MMOnline.Ru Разработка, поддержка и дизайн — MMForce.Net |
