Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 154
от 16.10.2005, 11:21

Администратор:Калашников О.А.
В рассылке:Подписчиков: 181, Экспертов: 29
В номере:Вопросов: 1, Ответов: 1


Вопрос № 27541: Здравствуйте! столкнулся со следующей проблемой: имеется двумерный массив из букв (n*m). Необходимо составить всевозможные слова длинной m. Элементы массива не повторяются. Остановился на бинарных деревьях, но как это решается на PHP не знаю...

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

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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.phpplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное