|
|
|
|
|
для: Trianon
(31.05.2008 в 20:37)
| | Издрежки прошлой жизни... | |
|
|
|
|
|
|
|
для: Trianon
(31.05.2008 в 20:37)
| | Огромное ВАМ всем спасибо. ОЧЕНЬ выручили теперь дальше пойдет всё как по маслу. Классно! | |
|
|
|
|
|
|
|
для: BinLaden
(31.05.2008 в 20:29)
| | Собственно, я только что заметил - в Вашем варианте ведь тоже явная рекурсия применена.
Откуда тогда такая ирония в ответе Киналю? :) | |
|
|
|
|
|
|
|
для: Trianon
(31.05.2008 в 20:28)
| | Да нет, всё замечательно. :) | |
|
|
|
|
|
|
|
для: BinLaden
(31.05.2008 в 20:27)
| | Да нет... просто на вопрос ответил...
Что-то не нравится? :) | |
|
|
|
|
|
|
|
для: BinLaden
(31.05.2008 в 20:18)
| | пожалуйста :) | |
|
|
|
|
|
|
|
для: Trianon
(31.05.2008 в 20:24)
| | Это Вы г-на Киналя спасли? | |
|
|
|
|
|
|
|
для: Port_Artur1
(31.05.2008 в 12:24)
| |
<?php
function generate($prefix, $plane)
{
if(empty($plane))
{
echo "$prefix<br/>\r\n";
return;
}
$slice = $plane[0];
foreach($slice as $digit)
generate($prefix.$digit, $plane[1]);
}
$pon = array(
'1'=> array("1","2","3","4"),
'2'=> array("4","2","3","7"),
'3'=> array("1","2"),
'4'=> array("8","2","3","4"),
'5'=> array("1","5","3"),
'6'=> array("9","2","3","7"),
'7'=> array("3","6","7","8"),
'8'=> array("3","4","6","8"),
'9'=> array("1","2","3"),
'0'=> array("1","2","3","4")
);
$num = "378";
$plane = array();
$i = strlen($num);
while( --$i >= 0 )
$plane = array($pon[$num[$i]], $plane);
generate("", $plane);
?>
|
| |
|
|
|
|
|
|
|
для: Port_Artur1
(31.05.2008 в 20:14)
| | Попробуйте так:
<?php
$pon = array(
array(1, 2, 3, 4),
array(1, 2, 3, 4),
array(4, 2, 3, 7),
array(1, 2),
array(8, 2, 3, 4),
array(1, 5, 3),
array(9, 2, 3, 7),
array(3, 6, 7, 8),
array(3, 4, 6, 8),
array(1, 2, 3)
);
function reduce_arr(&$pon, $keys)
{
$a = array();
$keys = (string) $keys;
if( !ctype_digit($keys) )
{
return false;
}
for($i = 0; $i < strlen($keys); $i++)
{
$a[] = $pon[$keys[$i]];
}
return $a;
}
function permutation()
{
global $a;
static $nest_lvl, $prefix;
$nest_lvl++;
if( $nest_lvl == count($a) )
{
foreach( $a[$nest_lvl - 1] as $val )
{
echo $prefix . $val . "\r\n";
}
}
else
{
foreach( $a[$nest_lvl - 1] as $k => $val )
{
$prefix .= $val;
permutation();
$prefix = substr($prefix, 0, -1);
}
}
$nest_lvl--;
}
$a = reduce_arr($pon, '378');
permutation();
?>
|
Коряво, правда. Не нравится зависимость от имён. | |
|
|
|
|
|
|
|
для: Киналь
(31.05.2008 в 20:09)
| | > Проще будет применить рекурсию.
Киналь, примените, нам хочется посмотреть :) | |
|
|
| |
|