|
|
|
| В общем след. задача.
Необходимо перебрать все варианты букв и цифр. Начал задумываться, кроме циклов ничего не получил... причем циклов очень много.
Ограничение стоит на 4 символа, то есть
abd3
ab3d
ar14
в этом духе, перебрать все возможные варианты, как действовать? может быть кто практическим примером поможет, спасибо. | |
|
|
|
|
|
|
|
для: 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;
}
}
}
}
|
а можно и с использованием рекурсии | |
|
|
|
|
|
|
|
для: Valick
(12.10.2008 в 15:25)
| | Знаете, что делают с автором за такую расстановку скобок и формирование отступов?
PS. Это, блин, без учета того факта, что в этом тексте вообще ни одной скобки не требуется. | |
|
|
|
|
|
|
|
для: Trianon
(12.10.2008 в 15:43)
| | признают фрибздшником? | |
|
|
|
|
|
|
|
для: mechanic
(12.10.2008 в 15:48)
| | фрибсдшники ставят закрывающие скобки зело правее открывающих?! | |
|
|
|
|
|
|
|
для: Trianon
(12.10.2008 в 15:52)
| | про закрывающие я так и подумал, что человек промахнулся, и не стал придираться)
а сам я говорил о стиле открывающих | |
|
|
|
|
|
|
|
для: mechanic
(12.10.2008 в 17:04)
| | Так дело в том, что положение открывающей скобки самой по себе малоинформативно.
Недаром её в одном из общепризаннных стилей (который я тем не менее не перевариваю) ставят в конце предыдущей строки. | |
|
|
|
|
|
|
|
для: Trianon
(12.10.2008 в 15:43)
| | Писал "на лету" (в окошке браузера и честно пытался расставить скобки каждую на своём месте) с учётом отведённого (30 сек) времени. И поверьте в мою педантичность, если б я пользовал свой любимый редактор, то скобки были-бы на своём месте))
Это, блин, без учета того факта
А вот этого, блин, не люблю... потому как в случае необходимости добавить что-то в код придётся расставлять скобки. Да и со скобками лично для меня нагляднее)
PS. отмазался? | |
|
|
|
|
|
|
|
для: Valick
(12.10.2008 в 16:05)
| | >Отмазался?
Так... на троечку.
Между прочим, строки в 3 символа и менее генерироваться не будут, однако.
Хотя признаю, что из условия задачи необходимость их генерации неочевидна. | |
|
|
|
|
|
|
|
для: Trianon
(12.10.2008 в 17:14)
| | уважаемые, а как сформировать массив доступных символов... в этом то и загвоздка.. | |
|
|
|
|
|
|
|
для: bartik
(12.10.2008 в 17:59)
| | к примеру, $arr = str_split("abcd0123"); | |
|
|
|
|
|
|
|
для: Trianon
(12.10.2008 в 18:03)
| | В том то и дело, распечатайте массив, что получается, мне надо чтобы было с разными вариациями... то к примеру
abc1
ab1c
a1bc
1abc
итд...
Спасибо за помощь) | |
|
|
|
|
|
|
|
для: bartik
(12.10.2008 в 18:07)
| | а получается что? | |
|
|
|
|
|
|
|
для: bartik
(12.10.2008 в 18:07)
| |
<?php
# ...
echo $value1.$value2.$value3.$value4 . "<br />\r\n";
# ...
?>
|
| |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: Valick
(12.10.2008 в 18:38)
| | - | |
|
|
|
|
|
|
|
для: Trianon
(12.10.2008 в 18:44)
| | - | |
|
|
|
|
|
|
|
для: Valick
(12.10.2008 в 18:52)
| | спасибо большое за помощь. | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: bartik
(12.10.2008 в 14:44)
| | Если строка только из букв -
<?php
$str = "aaaa";
while ( strlen ( $str ) == 4 )
{
echo $str++;
}
?>
|
| |
|
|
|