Консультация № 27541
11.10.2005, 08:01
0.00 руб.
0 1 1
Здравствуйте!
столкнулся со следующей проблемой: имеется двумерный массив из букв (n*m). Необходимо составить всевозможные слова длинной m. Элементы массива не повторяются.
Остановился на бинарных деревьях, но как это решается на PHP не знаю. Помогите с деревьями или предложите альтернативу. Заранее
бланодарен.
Александр. oCa.mail@mail.ru

Обсуждение

Неизвестный
11.10.2005, 11:25
общий
это ответ
Здравствуйте, OCa!
Я так понял, что вам нужно вставить всевозможные слова длиной m в массив m*n, где n - общее количество возможных слов, в m - длина слова.
Дело в том, что ваша задача - это типичное декартово произведение и для меня самый простой способ его получения - это использование БД.
Для этого просто создайте таблицу буквы. Внесите в неё все возможные буквы, которые хотите использовать для создания слова. Потом просто делайте из неё выборку без связывания:
для слов длиной 2:
select a.litera_name, b.litera_name from litera a, litera b/
Аналогично для большей длины.
Если для этих строк нужна ещё предварительная обработка - тоже перенесите её в БД - используйте переменные, если ваша версия mysql выше пятой, или ещё лучше реализовать обработку на pl/|sql в Oracle. Тогда код для этой задачи будет доступен из любого места, а не только из конкретной страницы php.
Форма ответа