Python/Google negatív modulus hiba!?

Az előbbibe futottam bele:
---
C kód:


    #include <stdio.h>

    int main()
    {
        int i = 7;
        int j = -4;
        int k = i%j;
        printf("%d\n",k);
        return 0;
    }

---
Lefuttava eredmény: 3 OK

Java kód:
---


public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Integer i = 7;
        Integer j = -4;
        System.out.println(i%j);
    }

}

---
Lefuttava eredmény: 3 OK

PHP:
---


<?php
$i=7;
$j=-4;
echo($i%$j);
?>

---
PHP dettó, 3 az eredmény.

Viszont!

Python kód:
---


i=7
j=-4
print str(i%j)

---

Lefuttatva eredmény: -1 !!!!

Illetve begépelve a Google keresősávjába: "7%-4"-et , majd Enter,
Szintúgy -1 lesz az eredmény !!!!

---
A kérdésem az, hogy ez miért lehet? Különbözik a Python/Google modulus számítási algoritmusa a többi nyelvtől?
Típusos/nem típusos probléma nem lehet, mivel a PHP is gyengén típusos nyelv, mégis ott jól jelenik meg, azaz 3.
Ha jól tudom, előjeles / float számoknál mindkét oldal abszolút értékével kell számolni, majd a bal oldal előjelétől függ az eredmény.
Akkor melyik eredmény a helyes, a C,Java,PHP vagy a Python/Google -é?

cryp

Hozzászólások