Показать сообщение отдельно

  #7  
Старый 27.12.2009, 23:07
dk-ne
Познающий
Регистрация: 21.01.2007
Сообщений: 69
С нами: 10159723

Репутация: 4
По умолчанию

У меня получился такой код. Но почему-то он повторяет результаты. Хотя вроде счетчик изменяется каждый раз после прохождения цикла на 1, а значит результаты деления всегда различны. Кто-то поймет почему?


set_time_limit(0);

$znaki = array ('+','-','*','/');
$odin = array (' ','-');

$SUM = 0;
$n = 0;
$end = (bcpow(4, 9, 0) - 1);
$sss = 0;

do
{

$sum = $SUM;

$a1 = $sum % 4;
$sum = ($sum - $a1)/ 4;
$a1 = $znaki[$a1];

$a2 = $sum % 4;
$sum = ($sum - $a2)/ 4;
$a2 = $znaki[$a2];

$a3 = $sum % 4;
$sum = ($sum - $a3)/ 4;
$a3 = $znaki[$a3];

$a4 = $sum % 4;
$sum = ($sum - $a4)/ 4;
$a4 = $znaki[$a4];

$a5 = $sum % 4;
$sum = ($sum - $a5)/ 4;
$a5 = $znaki[$a5];

$a6 = $sum % 4;
$sum = ($sum - $a6)/ 4;
$a6 = $znaki[$a6];

$a7 = $sum % 4;
$sum = ($sum - $a7)/ 4;
$a7 = $znaki[$a7];

$a8 = $sum % 4;
$sum = ($sum - $a8)/ 4;
$a8 = $znaki[$a8];

$a9 = $sum % 4;
$sum = ($sum - $a9)/ 4;
$a9 = $odin[$a9];

$SUM++;

eval("\$otv = {$a9}1{$a8}2{$a7}3{$a6}4{$a5}5{$a4}6{$a3}7{$a2}8{$ a1}9;");
if ($otv == 99)
{
echo "{$a9}1{$a8}2{$a7}3{$a6}4{$a5}5{$a4}6{$a3}7{$a2}8{ $a1}9<br>";
$sss++;
}
}
while ($n <= $end);

echo "Итого $sss вариантов";
 
Ответить с цитированием