|
|
|
| Нужен простейший алгоритм перебора, допустим:
aaa
aab
aac
..
aba
abb
и т.д.
Можно менять слева направа, не очень важно. | |
|
|
|
|
|
|
|
для: Бамси
(28.01.2008 в 19:06)
| | А чем aaa, aab, aac, ... отличается от 001, 002, 003, ...? | |
|
|
|
|
|
|
|
для: Бамси
(28.01.2008 в 19:06)
| |
<?
$a='a|b|c';
$a=explode('|',$a);
foreach($a as $i){
foreach($a as $j){
foreach($a as $k){
echo $i.$j.$k.'<br>';
}
}
}
|
| |
|
|
|
|
|
|
|
для: Eugene77
(28.01.2008 в 20:45)
| | Тут явно указана количество букв, нужно что бы менять размер строки можно было бы одной переменной.
$lenght = 1;
И тут ограничивается буквами abc. А надо например англисйкий алфавит. | |
|
|
|
|
|
|
|
для: Бамси
(28.01.2008 в 23:17)
| | при полном английском алфавите сложность системы при таком алгоритме будет очень жестокой... :)
время выполнения скрипта будет очень большим при переборе | |
|
|
|
|
|
|
|
для: Бамси
(28.01.2008 в 19:06)
| |
<?
for ( $i = "aaa"; $i <= "abb"; $i++ )
print $i."<br/>";
|
| |
|
|
|
|
|
|
|
для: Бамси
(28.01.2008 в 19:06)
| | Извените, ступил.
Нужен такой алгоритм который бы перебирал все буквы в слове...
Например слово "мир".
мри
ирм
рим
имр
.. | |
|
|
|
|
|
|
|
для: Бамси
(29.01.2008 в 16:25)
| | Ответ вам уже дали, не знаю как он по производительности, но работает вполне правильно
<?
$a='м|и|р'; // Здесь ваше слово, через разделитель;
$a=explode('|',$a); // Разбиваем слово на буквы через указанный разделитель;
foreach($a as $i) {
foreach($a as $j) {
foreach($a as $k) {
if (($i!=$j) and ($j!=$k) and ($i!=$k)) { // Если можно чтоб буквы повторялись, то уберите это условие;
echo $i.$j.$k.'<br>';
}
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Петр
(30.01.2008 в 14:05)
| | Тут только на 3 буквы, а если слово "корова".
Не буду же я каждый раз переписывать код. | |
|
|
|
|
|
|
|
для: Бамси
(30.01.2008 в 17:59)
| |
<?php
$w = 'abc';
function rep($s, $a, $l){
for($i = 0; $i < strlen($s); $i++){
if(1 == strlen($s)) echo $a.$s.'<br>';
$a .= $s[$i];
$a.=rep(substr($s,0,$i).substr($s,$i+1),$a,$l);
$a=substr($a,0,$l-strlen($s));
}
}
rep($w, '', strlen($w));
//
?>
|
| |
|
|
|
|
|
|
|
для: Eugene77
(30.01.2008 в 21:09)
| | Если например слово root (2 одинаковых буквы) то ответы будут повторяться. | |
|
|
|
|
|
|
|
для: Бамси
(31.01.2008 в 20:10)
| | Ну и что удалить повторения не так и сложно используй
Как она работает поглядеть можна тут | |
|
|
|
|
|
|
|
для: Бамси
(31.01.2008 в 20:10)
| | После такого примера, сразу показалось, что вы брутите чей-то пасс :-). | |
|
|
|
|
|
|
|
для: Nemezis
(01.02.2008 в 10:31)
| | Nemezis, после прочтения вопроса у меня тож появилась такая мысль.
Бамси, может вам в задачи сходить? Там был вроде брут. | |
|
|
|
|
|
|
|
для: mihdan
(01.02.2008 в 11:14)
| | Брутить на СИ надо - заметно эффективнее будет.
Да только болото это - засосёт ещё... | |
|
|
|
|
|
|
|
для: Eugene77
(01.02.2008 в 18:52)
| | хехе)) | |
|
|
|