Задать вопрос

Скрипт, выполняемый на JavaScript за секунду, на PHP за 30 секунд проходит только 20%. В чём причина?

Начал изучать язык и для разминки решил написать на нём решение задачки из IQ теста.
1369647303_1518507562.jpg
Эту задачку уже решал на JavaScript:
for(a=1; a<10; a++)
for(b=1; b<10; b++)
for(c=1; c<10; c++)
for(d=1; d<10; d++)
for(e=1; e<10; e++)
for(f=1; f<10; f++)
for(g=1; g<10; g++)
for(h=1; h<10; h++)
for(j=1; j<10; j++)
    if( 100*d+10*g+j + 100*j+10*a+e + 100*b+10*h+f == 1000*d+100*d+10*a+b && 
        f*c/j == 10*g+a &&
        a!=b && a!=c && a!=d && a!=e && a!=f && a!=g && a!=h && a!=j &&
                b!=c && b!=d && b!=e && b!=f && b!=g && b!=h && b!=j &&
                        c!=d && c!=e && c!=f && c!=g && c!=h && c!=j &&
                                d!=e && d!=f && d!=g && d!=h && d!=j &&
                                        e!=f && e!=g && e!=h && e!=j &&
                                                f!=g && f!=h && f!=j &&
                                                        g!=h && g!=j &&
                                                                h!=j  )       
        alert(  " a="+a+
                " b="+b+
                " c="+c+
                " d="+d+
                " e="+e+
                " f="+f+
                " g="+g+
                " h="+h+
                " j="+j);

Просто вставлял в консоль браузера и через секунду появлялось решение.

Чуть-чуть адаптировал код под php, запустил, но через 30 секунд выполнение прервалось по таймауту.
То есть так и не найдя ответ.
Неужели PHP настолько медленнее работает по сравнению с JavaScript?!
Или Я где-то ошибся при перепечатывании на другой язык?
<?php
for($a=1; $a<10; $a++)
for($b=1; $b<10; $b++)
for($c=1; $c<10; $c++)
for($d=1; $d<10; $d++)
for($e=1; $e<10; $e++)
for($f=1; $f<10; $f++)
for($g=1; $g<10; $g++)
for($h=1; $h<10; $h++)
for($j=1; $j<10; $j++)
    if( 100*$d+10*$g+$j + 100*$j+10*$a+$e + 100*$b+10*$h+$f == 1000*$d+100*$d+10*$a+$b && 
        $f*$c/$j == 10*$g+$a &&
        $a!=$b && $a!=$c && $a!=$d && $a!=$e && $a!=$f && $a!=$g && $a!=$h && $a!=$j &&
                  $b!=$c && $b!=$d && $b!=$e && $b!=$f && $b!=$g && $b!=$h && $b!=$j &&
                            $c!=$d && $c!=$e && $c!=$f && $c!=$g && $c!=$h && $c!=$j &&
                                      $d!=$e && $d!=$f && $d!=$g && $d!=$h && $d!=$j &&
                                                $e!=$f && $e!=$g && $e!=$h && $e!=$j &&
                                                          $f!=$g && $f!=$h && $f!=$j &&
                                                                    $g!=$h && $g!=$j &&
                                                                              $h!=$j  )   
        echo    " a=",$a,
                " b=",$b,
                " c=",$c,
                " d=",$d,
                " e=",$e,
                " f=",$f,
                " g=",$g,
                " h=",$h,
                " j=",$j;
?>
  • Вопрос задан
  • 3703 просмотра
Подписаться 15 Оценить 5 комментариев
Ответ пользователя Alexander Sharihin К ответам на вопрос (8)
Pinsky
@Pinsky
Кофеиноникотиновая смесь в backend-код
JS оптимальнее работает с такими конструкциями потому что движок V8(а Вы скорее всего на нем и тестили) - старается максимально оптимизировать данные вычисления.

PHP - не лучший язык для подобных задач. У PHP есть свои сильные стороны, но решение подобных задач, подобным методом - не они
Ответ написан