Ich weiß nicht, ob ich den Algorithmus richtig verstehe, aber ich bin zurzeit nicht imstande zu sagen, was Xi nach der Terminierung aller CPUs ist.
Für n=2 (2^n=4) wäre es meines Erachtens X4=(1*a[1],2*a[2],1*a[3],3*a[4])
Ich könnte es aber nicht für n= 3230123 angeben.
Habe ich hier was übersehen???
Ja sieht gut aus.
Überleg dir, wie oft welcher Prozessor das Feld a auf seinen Akkumulator x_i hinzuaddiert.
Manche tun es öfter als andere….
Jeder Prozessor legt jeweils X-viele a[sein-i-Index] Zahlen in seinem Akku ab. Mit anderen a's hat er nichts am Hut.
Bei 2^n sind es (n+1)*a[2^n]
Bei ALLEN ungeraden Zahlen ist das jeweils nur ein a
Bei geraden Zahlen:
a)wenn es ein vielfaches einer 2er-Potenz ist, dann i/2 a's (beginnend bei 8)
b)wenn es kein vielfaches einer 2er-Potenz ist, ?????????????
Jeder Prozessor legt jeweils X-viele a[sein-i-Index] Zahlen in seinem Akku ab. Mit anderen a's hat er nichts am Hut.
Bei 2^n sind es (n+1)*a[2^n]
Bei ALLEN ungeraden Zahlen ist das jeweils nur ein a
Bei geraden Zahlen:
a)wenn es ein vielfaches einer 2er-Potenz ist, dann i/2 a's (beginnend bei 8)
b)wenn es kein vielfaches einer 2er-Potenz ist, ?????????????
Weiss nicht wie du auf i/2 a's kommst im Fall der Vielfachen.
Wenn es kein Vielfaches einer 2er Potenz ist aber trotzdem gerade, dann musste gucken, wie oft die 2 in der Zahl drinsteckt….
i/2 war falsch, einfach vergessen!