Heim > Backend-Entwicklung > PHP-Tutorial > 生成长度为4的字符串,字符包括abcdefg,怎么样得到所有的组合?

生成长度为4的字符串,字符包括abcdefg,怎么样得到所有的组合?

WBOY
Freigeben: 2016-06-06 20:34:48
Original
1919 Leute haben es durchsucht

把所有的可能存放到一个数组中,程序怎么实现。
可以重复比如aaaa,最好PHP实现的

回复内容:

把所有的可能存放到一个数组中,程序怎么实现。
可以重复比如aaaa,最好PHP实现的

python

<code>import itertools
print list(itertools.permutations(["a","b","c","d","e","f","g"],4))
</code>
Nach dem Login kopieren

php

可以尝试这个:

http://www.honglei.net/?p=167

要考虑aaaa这样的存在吗?其实可以考虑给他们编码,假设abcdefg分别对应0123456,那么所有的情况就是:

0000(也就是0)~6666所有的数啦.

ps:7进制

直接上代码,四个for循环,简单暴力快速

<code><?php $dic = "abcdefg";
    $list =array();//存放所有结果集
    for($i=0;$i<7;$i++)
        for($j=0;$j<7;$j++)
            for($k=0;$k<7;$k++)
                for($l=0;$l<7;$l++){
                    $list[] = $dic[$i].$dic[$j].$dic[$k].$dic[$l];
                }
    print_r($list);

</code></code>
Nach dem Login kopieren

<code>function dfs($pre, $chars, $arr, $lenArr) {
    if(!empty($pre) && in_array(strlen($pre), $lenArr)){ $arr[] = $pre; }
    if(!empty($chars)) {
        foreach ($chars as $char) {
            $tempChars = array();
            foreach ($chars as $c) {
                if ($c !== $char) { $tempChars[] = $c; }
            }
            $arr = $this->dfs($pre.$char, $tempChars, $arr, $lenArr);
        }
    }
    return $arr;
}

function get_combine() {
    $chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
    $combineArray = array();
    $combineArray = $this->dfs('', $chars, $combineArray, array(4));
    echo count($combineArray).'<br>';
    var_dump($combineArray);
}</code>
Nach dem Login kopieren
Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage