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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перебор возможных комбинаций 
:(
    Опции темы
studentigor
Дата 27.2.2012, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



всем привет.
Есть скрипт, который перебирает возможные комбинации слов.
Код

$str = explode(' ',trim($model));
    $words = array();
    $col_str = count($str);
    for($ii=0;$ii<$col_str;$ii++){
        $words[] = $str;
    }
    while(true){
        $next=false;
        $arr_key = array();
        for ($it=0;$it<count($words);$it++){
            $c = sizeof($words[$it]);
            if($next){ 
                $array_index[$it]++; $next=false;
            } 
         if($array_index[$it]>=$c){
             $array_index[$it]=0; $next=true;
         }
         if(!in_array($array_index[$it],$arr_key)){
             $array_text[$index].=$words[$it][$array_index[$it]].' ';
             $arr_key[] = $array_index[$it];
         }
        }
        $array_text[$index]=trim($array_text[$index]);
        if ($next) { break; }
        $array_index[0]++;
        $index++;
    }
    $array_text=array_unique($array_text);


ну вобщем вот такой вот скрипт, он работает, но хотелось бы его немного подправить.

если словосочетание до 6 слов - то memory_limit хватает стандартно установленного 128м,
ну а если уже больше то уже нехватает.

экспериментировал, для словосочетаний из 8 слов 500М хватает, 400 -нет.

мож можно его как-то немного оптимизировать,
8 слов - это будет максимальный размер словосочитаний.

Или тут 2 выхода - увеличить размер памяти(очень не хотелось бы), уменьшить массив $words
PM MAIL   Вверх
$дмитрий
Дата 27.2.2012, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Цитата

Есть скрипт, который перебирает возможные комбинации слов.

Покажи на примере какое слово/а подаем на вход и каков при этом выходной массив
PM MAIL   Вверх
Fortop
Дата 27.2.2012, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(studentigor @  27.2.2012,  17:02 Найти цитируемый пост)
$str = explode(' ',trim($model));
Код

    $words = array();
    $col_str = count($str);
    for($ii=0;$ii<$col_str;$ii++){
        $words[] = $str;
    }

что делает этот код?



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
MoLeX
Дата 28.2.2012, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



очень много массивов, надо их сокращать (если возможно)


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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