
Untitled
By: a guest on
Apr 25th, 2012 | syntax:
None | size: 1.58 KB | hits: 13 | expires: Never
PHP algorithm which calculates all possible combinations of dividing one set between another set
$set1= array('A', 'B', 'C', 'D', 'E');
$set2= array('One', 'Two', 'Three', 'Four', 'Five');
$possibilities= array(
0 => array(
'One' => array('A'),
'Two' => array('B'),
'Three' => array('C'),
'Four' => array('D'),
'Five' => array('E'),
),
1 => array(
'One' => array('A', 'B', 'C'),
'Two' => array('D'),
'Three' => array('E'),
'Four' => array(),
'Five' => array(),
),
2 => array(
'One' => array('C'),
'Two' => array(),
'Three' => array('A'),
'Four' => array('B'),
'Five' => array('D', 'E'),
),
3 => array(
'One' => array(),
'Two' => array(),
'Three' => array('A', 'B', 'C', 'D', 'E'),
'Four' => array(),
'Five' => array(),
),
);
$powerset= powerSet(array('A', 'B', 'C'));
$cartesian = cartesian(array(
'Set1' => $powerset,
'Set2' => array('One', 'Two', 'Three')
));
Array (
[0] => Array ()
[1] => Array (
[0] => A
)
[2] => Array (
[0] => B
)
[3] => Array (
[0] => B
[1] => A
)
...
Array (
[0] => Array (
[Set1] => Array ()
[Set2] => One
)
[1] => Array (
[Set1] => Array (
[0] => A
)
[Set2] => One
)
[2] => Array (
[Set1] => Array (
[0] => B
)
[Set2] => One
)
[3] => Array (
[Set1] => Array (
[0] => B
[1] => A
)
[Set2] => One
)
...