Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> найти цепочки синонимов 
:(
    Опции темы
motorway
Дата 6.11.2009, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Есть синонимы:

автомобиль:машина:тачка
тачка:самодвижущийся экипаж
трамвай:рельсовый транспорт
кэб:повозка
повозка:карета
метро:подземка

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

автомобиль:машина:тачка:самодвижущийся экипаж
трамвай:рельсовый транспорт
кэб:повозка:карета
метро:подземка

Как это оптимальнее сделать?
PM MAIL   Вверх
NewDima
Дата 9.11.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: -1
Всего: 12



Вот мои пять минут 
Код

$syn = array(
        array('автомобиль', 'машина', 'тачка'),
        array('тачка', 'самодвижущийся экипаж'),
        array('трамвай', 'рельсовый транспорт'),
        array('кэб', 'повозка'),
        array('повозка', 'карета'),
        array('метро', 'подземка')
    );
    $res = array();
    for ($i = 0, $count = count($syn); $i < $count; ++$i) {
        $result = $syn[$i];
        if (!count($syn[$i])) continue;
        for ($j = $i + 1; $j < $count; ++$j) {
            if ($i == $j) continue; echo $syn[$j], $j;
            if (count(array_intersect($result, $syn[$j]))) {
                $result = array_unique(array_merge($result, $syn[$j]));
                $syn[$j] = array();
            }
        }
        $res[] = $result;
    }

PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0378 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.