Assoziativität bei Programmen



  • knivil schrieb:

    das gilt streng genommen auch nicht fuer ganze Zahlen mit fester Bitlaenge.

    Nö da gilt das auch.



  • Es gilt nicht fuer alle a: (a * 2) / 2 = a * (2 / 2)



  • darkfate: Wenn ich das richtig sehe, geht es hier nicht um Threads an sich, sondern darum, dass sich die Reihenfolge der Operationen bei der Aufteilung(!) in Threads ändert. Der eine Thread rechnet quasi 1+3+5+...+9, der andere 2+4+...+10, und das Ergebnis ist anders als wenn man 1+2+3+...+9+10 gerechnet hätte. Das könnte man natürlich auch seriell simulieren.
    Deine erste Äußerung dazu kam so rüber, als würden sich Fließkommaoperationen auf magische Weise anders verhalten, nur weil man irgendwo mit Threads arbeitet. Klar, dass du dafür Gegenwind kriegst.



  • knivil schrieb:

    Es gilt nicht fuer alle a: (a * 2) / 2 = a * (2 / 2)

    Du weißt aber schon was Assoziativität ist, oder?

    Auf Ganzzahlen gibt es 2 assoziativ Gesetze:
    a+(b+c) = (a+b)+c
    a*(b*c) = (a*b)*c
    Da kommt keine Division drin vor.


Anmelden zum Antworten