Hallo,
erstmal vielen Dank für deine Antwort. Deine absolute Lösung ist allerdings sinnlos, denn es behebt mein Problem von zu großen Zahlen nicht. Jedoch würde bei meinem zweiten Beispiel genauso wie bei deinem absoluten Beispiel die Quadrate zu schnell an Excels Grenzen bringen.
Mir geht es darum, dass ich den Rest des Produktes einzelner Quadrate benötige, die ich aus der Binärentwicklung einer weiteren Zahl erhalte . Nehmen wir an, dass ich die 10 = 0101 habe. Dann kommt also
REST((A1^1)^0*(A1^2)^1*(A1^4)^0*(A1^8)^1;B1)
Da jedoch damit die Zahlen zu stark wachsen, brauche ich eine schonendere Variante. Es gilt jedoch jedoch
REST((a+b)^2;a)=REST(a^2+2ab+b^2;a)=REST(b^2;a)
und damit folgt:
REST(REST((A1)^1;B1)*REST((A1)^2;B1)*REST((A1)^4;B1)*REST((A1)^8;B1);B1)
oder noch besser:
REST(REST(A1;B1)*REST(letzterWert^2;B1)*REST(letzterWert^2;B1)*REST(letzterWert^2;B1);B1)
Nimmt man nun bei der Iteration immer den vorherigen Wert, quadriert ihn und bildet den Rest dann hat man nach in jeder Zeile einen Quadratwert - und zudem eine resourcenschonendere Variante.
Und das war mein Ansatz bei der ersten Lösung. Das Problem: Ich benötige dafür zwei Spalten statt einer Zelle.
Ich dachte, dass man mit einer Matrixformel dieses Problem umgehen könnte. Damit diese sinnvoll begrenzt ist, würde ich den Logarithmus zur Basis 2 verwenden. Die Binärentwicklung wäre:
={KÜRZEN(REST(C1/2^ZEILE(INDIREKT(„1:“&(KÜRZEN(LOG(C1;2)+1))));1)*2)}
Jetzt müsste man noch die Quadrate einbinden:
{=REST(PRODUKT(A1^(2^(ZEILE(INDIREKT(„1:“&(KÜRZEN(LOG(C1;2)+1))))-1))^KÜRZEN(REST(C1/2^ZEILE(INDIREKT(„1:“&(KÜRZEN(LOG(C1;2)+1))));1)*2));B1)}
Die letze Zeile steht in D1, die weiteren Zellen sind:
A1 = 3
B1 = 5
C1 = 10
Wer diese 4 Zellen in Excel einfügt, der sieht, dass Excel am Ende die Zahl 59049 hat (Formelauswertung), aus dem er nur noch den Rest bilden muss.
Schon beim ersetzen von C1 = 10 durch 19 ist Excel machtlos und gibt nur noch #ZAHL! aus. Das heißt bei so winzig kleinen Ausgangszahlen macht Excel schlapp.
Daher ist es absolut wichtig, dass ich in jedem Zwischenschritt den Rest einzeln bilde. Kann man das auch über eine Matrixformel lösen?
Danke schon mal im Voraus,
MFG André
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]