第一种:3个元素
第二种:2个元素
第三种:2个元素
怎样生成
<code>0-0-0 0-0-1 0-1-0 0-1-1 1-0-0 1-0-1 1-1-0 1-1-1 2-0-0 2-0-1 2-1-0 2-1-1 </code>
这样的格式呢?
种类数和每个种类的元素个数可变,比如
第一种:2个元素
第二种:1个元素
第三种:2个元素
第四种:3个元素
就变成了
<code>0-0-0-0 .... 2-0-1-2 </code>
这样的格式呢?
第一种:3个元素
第二种:2个元素
第三种:2个元素
怎样生成
<code>0-0-0 0-0-1 0-1-0 0-1-1 1-0-0 1-0-1 1-1-0 1-1-1 2-0-0 2-0-1 2-1-0 2-1-1 </code>
这样的格式呢?
种类数和每个种类的元素个数可变,比如
第一种:2个元素
第二种:1个元素
第三种:2个元素
第四种:3个元素
就变成了
<code>0-0-0-0 .... 2-0-1-2 </code>
这样的格式呢?
这不就是普通的取余么,普通的一个数组就行了,用一个自增整数反复取余就能列出所有组合了
http://3v4l.org/rnOU4
<code>php</code><code><?php print_r(every(array(3,2,2))); print_r(every(array(1,2,3,4))); function every($levels) { $results = array(); $i = 0; while(true) { $current = $i; $result = array(); foreach(array_reverse($levels) as $max) { array_unshift($result, $current % $max); $current = intval($current / $max); } if($current >= 1) { break; } else { $results[] = $result; $i++; } } return $results; } </code>
业务环境没有写清同学~不明白你在说什么咯~