Riesige Arrays möglich oder was anderes
Verfasst: 20.08.2021 10:04
Hallo !
Habe noch ein Problem mit Arrays. In einem Programm möchte ich die Farbzusammensetzung eines Bildes bearbeiten. Dazu müssen die Farben des
Bildes gezählt werden. Die obere Grenze sind 16 Mio, aber das kommt meist nicht vor, sondern zum Beispiel n=400000 Farben. In einem ersten
Schritt wird das Bild pixelweise durchgegangen, dessen Farbe bestimmt, und in einem Array, das als index die Farbnummer hat, das vorhandensein
der Farbe gezählt. z.b. f(212)=f(212)+1 für Farbe 212. Die Dimensionierung wird auch bei 16 Mio erfüllt. Mit der Summe (Häufung) bestimmter
Farben muss dann weitergerechnet werden. Der Algorithmus verlangt ein Array der Grösse n*(n-1)/2 im Beispiel 79999800000 bei 16 Mio ist eine
Indexgröße von 140737479966720 nötig. Sind solche Arrays machbar, abgesehen davon, das der Rechner wahrscheinlich für den Programmablauf
Jahre braucht. Ich werde die Farbzahl wahrscheinlich durch Zusammenfassung stark verringern müssen. Bis zu welchem n spielt PB mit seinen
Arrays noch mit (64 bit). ?
Heinz
Habe noch ein Problem mit Arrays. In einem Programm möchte ich die Farbzusammensetzung eines Bildes bearbeiten. Dazu müssen die Farben des
Bildes gezählt werden. Die obere Grenze sind 16 Mio, aber das kommt meist nicht vor, sondern zum Beispiel n=400000 Farben. In einem ersten
Schritt wird das Bild pixelweise durchgegangen, dessen Farbe bestimmt, und in einem Array, das als index die Farbnummer hat, das vorhandensein
der Farbe gezählt. z.b. f(212)=f(212)+1 für Farbe 212. Die Dimensionierung wird auch bei 16 Mio erfüllt. Mit der Summe (Häufung) bestimmter
Farben muss dann weitergerechnet werden. Der Algorithmus verlangt ein Array der Grösse n*(n-1)/2 im Beispiel 79999800000 bei 16 Mio ist eine
Indexgröße von 140737479966720 nötig. Sind solche Arrays machbar, abgesehen davon, das der Rechner wahrscheinlich für den Programmablauf
Jahre braucht. Ich werde die Farbzahl wahrscheinlich durch Zusammenfassung stark verringern müssen. Bis zu welchem n spielt PB mit seinen
Arrays noch mit (64 bit). ?
Heinz