把所有的可能存放到一個數組中,程式怎麼實現。
可以重複比如aaaa,最好PHP實現的
回複內容:
把所有的可能存放到一個數組中,程式怎麼實現。
可以重複比如aaaa,最好PHP實現的
python
import itertoolsprint list(itertools.permutations(["a","b","c","d","e","f","g"],4))
php
可以嘗試這個:
http://www.honglei.net/?p=167
要考慮aaaa這樣的存在嗎?其實可以考慮給他們編碼,假設abcdefg分別對應0123456,那麼所有的情況就是:
0000(也就是0)~6666所有的數啦.
ps:7進位
直接上代碼,四個for迴圈,簡單暴力快速
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).'
'; var_dump($combineArray);}