Всем привет! Такая задача: есть массив, например $liter=array("a", "b", "c"), причем количество и значения элементов массива могут изменяться. Необходимо сделать скрипт, который бы выводил все возможные варианты последовательностей значений массива aaa aab aba abb baa bab bba bbb aac aca acc caa cac cca ccc ... и т.д. $diapazon - количество символов в строке, $j - количество знаков в массиве PHP: <? $predel=pow($j, $diapazon); for ($i=0; $i<$predel; $i=$i+1) { $word=""; for ($c=0; $c<$diapazon; $c=$c+1) { $liter_= $liter[$i]; $word .=$liter_; } $word .="\r\n"; fwrite ($fd, $word); } код работает не правильно, выдает только aaa, bbb, ccc. Уже все мозги сломал, помогите составить код.
Действительно круто! на основе этого кода сделал вот, нужно крутить дальше, что б добиться того, что ты хочешь kit PHP: <? $a = array('aa'); $b = array('zz'); for ($c=$a[0];$c<$b[0];$c++) { var_dump($c)."<br>"; } ?>
PHP: <?php $array = array(); $symbols = array('@', '#', '$'); for ($i=0; $i < 1000; $i++) { shuffle($symbols); $variant = implode(null, $symbols); if (!in_array($variant, $array)) { $array[] = $variant; } } sort($array); print_r($array); ?> :-D
sizeof(array) - определяет размер массива PHP: $liter = array("?", "1", "5") for($i=0; $i<sizeof($liter); $i++) { echo ($liter[$i]."<br>\n"); } HTML: ?<br> 1<br> 5<br>
Devzirom мне не совсем это надо [vs] Жесть! Немного проясню задачу, я в первом посте неверно последовательность изобразил. Итак есть массив, например $liter=array("a", "1", "?"), причем количество и значения элементов массива могут изменяться. Необходимо сделать скрипт, который бы выводил все возможные варианты последовательностей значений массива. При $diapazon=3 (количество символов в строке) ааа \ аа1 > сверху вниз а, 1, ? аа? / а1а а11 а1? а?а а?1 а?? 1аа 1а1 1а? 11а 111 11? ... и т.д. Последовательность должна меняться как спидометр автомобиля, т.е. если смотреть на крайние правые цифры первых 3х слов сверху вниз, то можно увидеть а, 1, ? (элементы масива в том же порядке). Когда перебраны все элементы младшего разряда, то меняется старший разряд и т.д. Сложность в том, что $diapazon величина не постоянная и может изменяться юзером, т.е. вполне возможно аааа ааа1 ааа? аа1а аа11 аа1? ... и т.д. П А М А Г И Т Е ! ! !
Китайцы решили взломать сервер Пентагона. Каждый житель китая вводил случайный пароль. По статистике каждый второй пароль оказался "Мао Дзедун". На пятьсот тридцать восемь миллионов двести девяносто пять тысяч четыреста сорок первой попытке сервер Пентагона согласился, что пароль "Мао Дзедун". Народ, пжл, не отвлекайтесь от темы!
Усе!!! Сам додумался! Кому надо пишите в личку, здесь даже боюсь постить. Обвиняете черт знает в чем, право даже не ловко как-то...
Хамить изволите? :x Стал бы я из-за 4 циклов топик контентить! Всего 2 цикла! Ибо всякий брут матрица, но не всякая матрица брут (я сейчас не про ту матрицу где Нео и Опиус, а про обыкновенную математическую матрицу). Итак 2 цикла: первый генерирует символы в строке, второй генерирует сами строки. Контент заполняется по простому закону приращения, т.е. когда младший разряд достиг максимума, идет приращение старшего разряда и т.д. Интересно канеш, :roll: но че-то мудрено больно! Это запросто. Массив $liter[0] содержит любое число элементов PHP: <? $diapazon=$_POST['min']; $predel=pow($j, $diapazon); $w=$j-1; for ($l=0; $l<$diapazon; $l=$l+1) $word[$l]=0; for ($l=0; $l<$diapazon; $l=$l+1) { echo $liter[0][$word[$l]]; } echo "</br>"; for ($i=0; $i<$predel; $i=$i+1) { for ($n=0; $n<$diapazon; $n=$n+1) { if ($word[$n]!==$w) { $word[$n]=$word[$n]+1; } else { $word[$n]=0; } if ($word[$n]!==0) { for ($l=0; $l<$diapazon; $l=$l+1) { echo $liter[0][$word[$l]]; } echo "</br>"; break; } } } ?> Результат: для $liter[0] = array('a','1','?'); ааа 1аа ?аа а1а 11а ?1а а?а 1?а ??а аа1 1а1 ?а1 а11 111 ?11 а?1 1?1 ??1 аа? 1а? ?а? а1? 11? ?1? а?? 1?? ??? Апладисментов не надо, просто принесите мне в жертву миллион долларов