codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
<?php // Lists all ways to choose X from an array function choose($x, array $arr) { $ret = array(); if ($x === 0) { // I don't think this will come up. return array(); } else if ($x === 1) { foreach ($arr as $val) { $ret[] = array($val); } } else { $already_chosen = choose($x - 1, $arr); for ($i = 0, $size_i = sizeof($arr); $i < $size_i; $i++) { for ($j = 0, $size_j = sizeof($already_chosen); $j < $size_j; $j++) { if (!in_array($arr[$i], $already_chosen[$j])) { $ret[] = array_merge( array($arr[$i]), $already_chosen[$j] ); } } } } return $ret; } function choose_all($arr) { for ($i = 1, $size = sizeof($arr); $i <= $size; $i++) { foreach (choose($i, $arr) as $val) { echo implode(":", $val).PHP_EOL; } } } choose_all(array( "A", "B", )); echo "--".PHP_EOL; choose_all(array( "ABC", "Z", )); echo "--".PHP_EOL; choose_all(array( 'T', 'O', 'RS' ));
Private
[
?
]
Run code
Submit