PHP hız vs Python

0 Cevap php

I Project Euler (MEZUNLARI, sorunu 25) bir sorunu çözmek istiyorsanız, ve ben Python bir çözüm bulundu:

fibonacci = 1
old1 = 0
old2 = 1
limit = 1000

i = 1

while len(str(fibonacci)) < limit:
    fibonacci = old1 + old2
    old1 = old2
    old2 = fibonacci
    i = i + 1

print(i)

Bu hesaplamak için 1.5 saniye sürdü.

PHP aynı uygulanan, bu kodu:

$fibonacci = 1;
$old1 = 0;
$old2 = 1;
$limit = 1000;

$i = 1;

while (strlen((string)$fibonacci) < $limit){
    $fibonacci = $old1 + $old2;
    $old1 = $old2;
    $old2 = $fibonacci;
    $i = $i + 1;
}
print($i);

Ve daha 30 dakika sürdü ve hala hesaplama ...

Python, PHP daha hızlı kabul edilir olduğunu biliyorum, ama yine de o kadar büyük bir fark olmamalıdır. Bunu yapmanın bir yolu varsa, daha hızlı sonuç almak için benim PHP kod geliştirmek için nasıl?

EDIT:

I edit this post based on comments below so first my solution was not going to work. One solution can be instead of old while to put this one:

while (strlen(number_format($fibonacci, 0, '', '')) < $limit){ ... }

Fakat yine büyük bir hız sorunu nedir.

Yani nihai çözüm kullanarak BCMath edilir:

$fibonacci = '1';
$old1 = '0';
$old2 = '1';
$limit = 1000;

$i = 1;

while (strlen($fibonacci) < $limit){

    $fibonacci = bcadd($old1, $old2);
    $old1 = $old2;
    $old2 = $fibonacci;
    $i = $i + 1;
}
echo $fibonacci . "<br />";
print($i);

Yani PHP, Python gibi aynı hızda sonuçlar alabilirsiniz.

0 Cevap