Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: перебрать все доступные варианты букв и цифр ( ограничение 4 символа)
 
 автор: bartik   (12.10.2008 в 14:44)   письмо автору
 
 

В общем след. задача.
Необходимо перебрать все варианты букв и цифр. Начал задумываться, кроме циклов ничего не получил... причем циклов очень много.
Ограничение стоит на 4 символа, то есть
abd3
ab3d
ar14
в этом духе, перебрать все возможные варианты, как действовать? может быть кто практическим примером поможет, спасибо.

  Ответить  
 
 автор: Valick   (12.10.2008 в 15:25)   письмо автору
 
   для: bartik   (12.10.2008 в 14:44)
 

причем циклов очень много
Четыре это по-вашему много?
Практический пример:
берёте формируете массив доступных символов
потом четыре вложенных foreach

foreach($mass as $value1)
  {
    foreach($mass as $value2)
     {
       foreach($mass as $value3)
        {
          foreach($mass as $value4)
           {
            echo $value1.$value2.$value3.$value4;
           }
         }
       }
    }

а можно и с использованием рекурсии

  Ответить  
 
 автор: Trianon   (12.10.2008 в 15:43)   письмо автору
 
   для: Valick   (12.10.2008 в 15:25)
 

Знаете, что делают с автором за такую расстановку скобок и формирование отступов?

PS. Это, блин, без учета того факта, что в этом тексте вообще ни одной скобки не требуется.

  Ответить  
 
 автор: mechanic   (12.10.2008 в 15:48)   письмо автору
 
   для: Trianon   (12.10.2008 в 15:43)
 

признают фрибздшником?

  Ответить  
 
 автор: Trianon   (12.10.2008 в 15:52)   письмо автору
 
   для: mechanic   (12.10.2008 в 15:48)
 

фрибсдшники ставят закрывающие скобки зело правее открывающих?!

  Ответить  
 
 автор: mechanic   (12.10.2008 в 17:04)   письмо автору
 
   для: Trianon   (12.10.2008 в 15:52)
 

про закрывающие я так и подумал, что человек промахнулся, и не стал придираться)
а сам я говорил о стиле открывающих

  Ответить  
 
 автор: Trianon   (12.10.2008 в 17:12)   письмо автору
 
   для: mechanic   (12.10.2008 в 17:04)
 

Так дело в том, что положение открывающей скобки самой по себе малоинформативно.
Недаром её в одном из общепризаннных стилей (который я тем не менее не перевариваю) ставят в конце предыдущей строки.

  Ответить  
 
 автор: Valick   (12.10.2008 в 16:05)   письмо автору
 
   для: Trianon   (12.10.2008 в 15:43)
 

Писал "на лету" (в окошке браузера и честно пытался расставить скобки каждую на своём месте) с учётом отведённого (30 сек) времени. И поверьте в мою педантичность, если б я пользовал свой любимый редактор, то скобки были-бы на своём месте))

Это, блин, без учета того факта
А вот этого, блин, не люблю... потому как в случае необходимости добавить что-то в код придётся расставлять скобки. Да и со скобками лично для меня нагляднее)

PS. отмазался?

  Ответить  
 
 автор: Trianon   (12.10.2008 в 17:14)   письмо автору
 
   для: Valick   (12.10.2008 в 16:05)
 

>Отмазался?
Так... на троечку.

Между прочим, строки в 3 символа и менее генерироваться не будут, однако.
Хотя признаю, что из условия задачи необходимость их генерации неочевидна.

  Ответить  
 
 автор: bartik   (12.10.2008 в 17:59)   письмо автору
 
   для: Trianon   (12.10.2008 в 17:14)
 

уважаемые, а как сформировать массив доступных символов... в этом то и загвоздка..

  Ответить  
 
 автор: Trianon   (12.10.2008 в 18:03)   письмо автору
 
   для: bartik   (12.10.2008 в 17:59)
 

к примеру, $arr = str_split("abcd0123");

  Ответить  
 
 автор: bartik   (12.10.2008 в 18:07)   письмо автору
 
   для: Trianon   (12.10.2008 в 18:03)
 

В том то и дело, распечатайте массив, что получается, мне надо чтобы было с разными вариациями... то к примеру
abc1
ab1c
a1bc
1abc
итд...
Спасибо за помощь)

  Ответить  
 
 автор: Trianon   (12.10.2008 в 18:16)   письмо автору
 
   для: bartik   (12.10.2008 в 18:07)
 

а получается что?

  Ответить  
 
 автор: BinLaden   (12.10.2008 в 18:27)   письмо автору
 
   для: bartik   (12.10.2008 в 18:07)
 

<?php
# ...
echo $value1.$value2.$value3.$value4 "<br />\r\n";
# ...
?>

  Ответить  
 
 автор: Valick   (12.10.2008 в 18:38)   письмо автору
 
   для: bartik   (12.10.2008 в 18:07)
 

"Просто добавь воды"

<PRE>
<?php
$mass 
str_split("abcd0123#*");
foreach(
$mass as $value1
   { 
   foreach(
$mass as $value2
      { 
      foreach(
$mass as $value3
         { 
         foreach(
$mass as $value4
            { 
            
$bruteforce[] = "$value1$value2$value3$value4"
            } 
         } 
      } 
   }
print_r ($bruteforce);
?>
</PRE>

  Ответить  
 
 автор: Trianon   (12.10.2008 в 18:44)   письмо автору
 
   для: Valick   (12.10.2008 в 18:38)
 

-

  Ответить  
 
 автор: Valick   (12.10.2008 в 18:52)   письмо автору
 
   для: Trianon   (12.10.2008 в 18:44)
 

-

  Ответить  
 
 автор: bartik   (12.10.2008 в 19:27)   письмо автору
 
   для: Valick   (12.10.2008 в 18:52)
 

спасибо большое за помощь.

  Ответить  
 
 автор: Valick   (13.10.2008 в 14:07)   письмо автору
 
   для: Trianon   (12.10.2008 в 17:14)
 

Между прочим, строки в 3 символа и менее генерироваться не будут

теперь будут

<PRE>
<?php
$mass 
str_split("abcd0123#*");
foreach(
$mass as $value1)
   {
   
$bruteforce[] = "$value1";
   foreach(
$mass as $value2)
      {
      
$bruteforce[] = "$value1$value2";
      foreach(
$mass as $value3)
         {
         
$bruteforce[] = "$value1$value2$value3";
         foreach(
$mass as $value4)
            {
            
$bruteforce[] = "$value1$value2$value3$value4";
            }
         }
      }
   }
print_r ($bruteforce);
?>
</PRE>

  Ответить  
 
 автор: Le bien   (13.10.2008 в 17:14)   письмо автору
 
   для: bartik   (12.10.2008 в 14:44)
 

Если строка только из букв -


<?php

$str 
"aaaa";
while ( 
strlen $str ) == )
{
    echo 
$str++;
}

?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования