Пример #1
1
function ackermann($m, $n)
{
    if ($m === 0) {
        return $n + 1;
    } elseif ($n === 0) {
        return ackermann($m - 1, 1);
    }
    return ackermann($m - 1, ackermann($m, $n - 1));
}
 public function testWrongAnswers()
 {
     $this->assertNotEquals(ackermann(0, 0), 0);
     $this->assertNotEquals(ackermann(0, 3), 2);
     $this->assertNotEquals(ackermann(0, 2), 5);
     $this->assertNotEquals(ackermann(2, 2), 10);
     $this->assertNotEquals(ackermann(2, 4), 12);
     $this->assertNotEquals(ackermann(3, 2), 40);
     $this->assertNotEquals(ackermann(3, 5), 256);
 }
Пример #3
0
function ackermann($m, $n)
{
    $x = 4;
    $y = 2;
    $z = 14;
    $foo = "lajflajf";
    $boo = "afljadjfj";
    if ($m === 0) {
        return $n + $y * $x + $x * $y - 4 - $x - $x - 3;
    } elseif ($n === 0) {
        return ackermann($m - $y * $x + $x * $y - 4 - $x - $x - 3 + $z, 1);
    }
    return ackermann($m - $y * $x + $x * $y - 4 - $x - $x - 3 + $z, ackermann($m, $n - $y * $x + $x * $y - 4 - $x - $x - 3 + $z));
}
Пример #4
0
    echo "Total" . $pad . $num . "\n";
}
$t0 = $t = start_test();
simple();
$t = end_test($t, "simple");
simplecall();
$t = end_test($t, "simplecall");
simpleucall();
$t = end_test($t, "simpleucall");
simpleudcall();
$t = end_test($t, "simpleudcall");
mandel();
$t = end_test($t, "mandel");
mandel2();
$t = end_test($t, "mandel2");
ackermann(7);
$t = end_test($t, "ackermann(7)");
ary(50000);
$t = end_test($t, "ary(50000)");
ary2(50000);
$t = end_test($t, "ary2(50000)");
ary3(2000);
$t = end_test($t, "ary3(2000)");
fibo(30);
$t = end_test($t, "fibo(30)");
hash1(50000);
$t = end_test($t, "hash1(50000)");
hash2(500);
$t = end_test($t, "hash2(500)");
heapsort(20000);
$t = end_test($t, "heapsort(20000)");
Пример #5
0
    return $t['sec'] + $t['usec'] / 1000000;
}
function start_test()
{
    ob_start();
    return getmicrotime();
}
function end_test($start, $name)
{
    global $total;
    $end = getmicrotime();
    ob_end_clean();
    $total += $end - $start;
    $num = number_format($end - $start, 3);
    $pad = str_repeat(" ", 24 - strlen($name) - strlen($num));
    echo $name . $pad . $num . "\n";
    ob_start();
    return getmicrotime();
}
function total()
{
    global $total;
    $pad = str_repeat("-", 24);
    echo $pad . "\n";
    $num = number_format($total, 3);
    $pad = str_repeat(" ", 24 - strlen("Total") - strlen($num));
    echo "Total" . $pad . $num . "\n";
}
$t0 = $t = start_test();
ackermann();
$t = end_test($t, "ackermann()");
Пример #6
0
function main_function()
{
    for ($i = 0; $i < 100; ++$i) {
        ackermann(4);
        ary(50000);
        ary2(50000);
        ary3(100);
        fibo(23);
        hash1(10000);
        hash2(200);
        heapsort(2000);
        matrix(3);
        nestedloop(8);
        sieve(5);
        strcat(80000);
        binary_trees(7);
        fannkuch(6);
    }
}
Пример #7
0
<?php

function Ack($m, $n)
{
    if ($m == 0) {
        return $n + 1;
    }
    if ($n == 0) {
        return Ack($m - 1, 1);
    }
    return Ack($m - 1, Ack($m, $n - 1));
}
function ackermann($n)
{
    $r = Ack(3, $n);
    print "Ack(3,{$n}): {$r}\n";
}
ackermann(3);
Пример #8
0
function main_function()
{
    ackermann(2);
    ary(500);
    ary2(500);
    ary3(5);
    fibo(13);
    hash1(100);
    hash2(20);
    heapsort(200);
    matrix(3);
    nestedloop(3);
    sieve(1);
    strcat(80);
    binary_trees(3);
    fannkuch(6);
}
function ackermann($m = 0, $n = 0)
{
    if ($m == 0) {
        return $n + 1;
    } else {
        if ($m > 0 && $n == 0) {
            return ackermann($m - 1, 1);
        } else {
            return ackermann($m - 1, ackermann($m, $n - 1));
        }
    }
}
function ackermann($x, $y, $r8)
{
    global $__cache;
    if (isset($__cache[$x][$y])) {
        return $__cache[$x][$y];
    }
    $result = 0;
    if ($x == 0) {
        // call6027
        $result = ($y + 1) % 32768;
    } else {
        if ($y == 0) {
            // call6035
            $result = ackermann($x - 1, $r8, $r8);
        } else {
            // call6048
            $result = ackermann($x - 1, ackermann($x, $y - 1, $r8), $r8);
        }
    }
    $__cache[$x][$y] = $result;
    return $result;
}