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

Поиск:

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


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

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



Как сделать функцию, которая рекурсивно вызывая себя, будет генерить мне списки всех возможных комбинаций введенных мной чисел?

Навроде вот этого, но элегантнее и с рекурсией (помоему):
Код

$i[1] = 0;
while ($i[1] < 5) {
    $i[2] = 0;
    while ($i[2] < 5) {
       $i[3] = 0;
       while ($i[3] < 5) {
        $i[4] = 0;
           while ($i[4] < 5) {
            $i[5] = 0;
            while ($i[5] < 5) {
                $i[6] = 0;
                while ($i[6] < $out) {
                       $write = $i[1].'-'.$i[2].'-'.$i[3].'-'.$i[4].'-'.$i[5].'-'.$i[6]."\n";
                       echo $write;
                       flush();
            ?><br><?
                    $i[6]++;
                   }
                   $i[5]++;
               }
               $i[4]++;
           }
           $i[3]++;
       }
       $i[2]++;
    }
    $i[1]++;
}



--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
MuToGeN
Дата 8.7.2003, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



Тут на форуме моя функция валялась, которая из массивов это все составляет... Немного по-другому, но может поможет... http://forum.vingrad.ru/index.php?act=ST&f=6&t=9227


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Master
Дата 8.7.2003, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

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



MuToGeN
Во первых эта задача куда слабее той, во вторых ничего общего кроме массивов эти задачи не имеют, в третьих для решения этой задачи в PHP есть специальная функция.

Код
<?php

$arr = Array(1,2,3,4,5,6,7,8,9,10);
$rand_arr = array_rand($arr,count($arr) - 1);
print_r($rand_arr);

?>


Эта задача решается функцией array_rand


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
arial
  Дата 8.7.2003, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

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



Цитата(Master @ 8.7.2003, 11:04)
MuToGeN
Во первых эта задача куда слабее той, во вторых ничего общего кроме массивов эти задачи не имеют, в третьих для решения этой задачи в PHP есть специальная функция.

Код
<?php

$arr = Array(1,2,3,4,5,6,7,8,9,10);
$rand_arr = array_rand($arr,count($arr) - 1);
print_r($rand_arr);

?>


Эта задача решается функцией array_rand

Стоп!
Нужен УПОРЯДОЧЕННЫЙ список:
0-0-0
0-0-1
0-0-2
...
4-8-5
4-8-6
...
9-9-9

Или так:
0-0-0
0-0-1
...
56-23-78
56-23-79
...
99-99-99

А не случайно выщемленная единичная комбинация.
Нужен ПОЛНЫЙ список ВСЕХ возможных комбинаций.
Представте себе спортлото - 5 из 36:
Нужно выбрать все возможные комбинации. Разница в том, что в спортлото в одной комбинации цифры не повторяются.

Данный мной цикл с этой задачей справляется, но какой-то он страшный. Вот я представляю, что можно решить задачу рекурсивным вызовом но как, допереть немогу.



--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Master
Дата 8.7.2003, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

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



arial ну зачем обсуждать здесь другой топик? sad.gif


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM 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.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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