Da ihr mir so gut geholfen habt, mein anderes Programm zu beschleunigen, wende ich mich voller Hoffnung erneut mit einem Optimierungsproblem an euch.
Black Jack hatte mich bei meinem anderen Programm nach einem Histogramm meiner Daten gefragt; bis dahin wusste ich nicht was das ist.
Ich hab dann ein wenig mit Zufallszahlen und Histogrammen rungespielt und die Verteilungen davon sind ja höchst interessant.
Doch je größer die zu untersuchende Menge wird, je länger dauert die Untersuchung auch.
Ich hab mal eine Datei mit 5 Millionen Zufallswerten erstellt, von denen jeder einen ASCII-Wert von 33 bis 126 (Tastaturbereich) annehmen kann.
http://rapidshare.com/files/456425392/a.txt
Ihr könnt euch aber auch ne eigene erstellen, ich habs so gemacht:
Code: Alles auswählen
datei=open(pfad, "w")
zufall=''
for i in range(5000000):
zufall+=chr(randint(33,126))
datei.write(str(zufall))
datei.close
Das erste Element repräsentiert, wie oft das ASCII-33-Zeichen vorgekommen ist,
das zweite Element repräsentiert, wie oft das ASCII-34-Zeichen vorgekommen ist...
Ich habe das so gelöst:
Code: Alles auswählen
liste=94*[0]
for i in zufall:
liste[ord(i)-33]+=1)
Da ich nicht weiß, wie ord() programmiert ist, habe ich es auch mal so probiert:
Code: Alles auswählen
for i in zufall:
if i == "!":
liste[0]+=1
[...die anderen Möglichkeiten]
if i == "~":
liste[93]+=1
Vielleicht habt ihr noch andere Ideen,
Gruß,
Paul