Ich habe die folgende Situation: Ich habe eine Folge von Vektoren und für jeden möchte ich das Produkt berechnen, wobei zu Beginn festgelegt ist. Obwohl es keine Informationen über die Struktur von , hat normalerweise ein bestimmtes Muster, in dem viele Werte wiederholt werden, und ich möchte diese Produkte so schnell wie möglich berechnen.
Ein Beispiel für sieht so aus:
Hier sind die weißen Bereiche 0.
Ich frage mich, ob es eine Möglichkeit gibt, Informationen über speichern oder sie irgendwie zu ändern, um die Anzahl der Vorgänge für jedes Produkt zu reduzieren. Für Zeilen, die alle 0 sind, ist dies trivial - man kann nur die Zeilenangaben speichern, die solche Zeilen anzeigen. Es ist auch möglich, Informationen darüber zu speichern, welche Zeilen dupliziert werden, um Zeilenberechnungen wiederzuverwenden. Ich habe auch darüber nachgedacht, die Zeilen der Matrix so anzuordnen, dass die mittlere Differenz zwischen jeder Zeile minimiert wird und nur die Differenz in jeder Zeile berechnet wird. Dies scheint jedoch bei den komplizierteren Mustern auf Probleme zu stoßen.
Ich habe mich gefragt, ob es bekannte Methoden für diese Art von Problemen gibt.
Edit: Eine andere Idee, die ich hatte, ist, dass seit der Nr. Die der eindeutigen Werte in der Matrix ist ziemlich niedrig. Man könnte das Produkt als wobei nur einen eindeutigen Wert enthält, aber ich bin mir immer noch nicht sicher, ob dies einen Vorteil für dieses Problem bieten kann.