[Python-de] Re: 1,2,3,5,7,8,9 -> "1-3,5,7-9"

Alexander 'boesi' Bösecke boesi.josi at gmx.net
Die Jun 22 09:23:17 CEST 2004


Hi

Das Packet liegt jetzt unter
http://www.stud.tu-ilmenau.de/~boesi/temp/Bench.zip
Die Algorithmen hab ich in AlgoListe.py ausgelagert, der Test wird mit
Bench.py gestartet, die Unittests befinden sich in testBenchListe.py.

Die Funktion benchFunc kann zum testen der Laufzeit beliebiger
Funktionen genutzt werden. Als Parameter nimmt sie die Anzahl der Runden,
die zu testende Funktion und eventuelle Parameter fuer die Funktion.
Rueckgabewerte sind die Zeit fuer alle Runden (also kein Durchschnitt)
und das Ergebnis der letzten Runde.

Am 21.06.2004 13:56:37 schrieb Peter Otten:

> Hier zwei weitere Kandidaten für dein Testskript, Peter_schnell() und
> Peter_sauber().

Sind genau wie die Funktion von Gerson in AlgoListe aufgenommen.

> Ich habe festgestellt, dass bei der Messung die zuerst getestete Funktion
> etwas benachteiligt wird - hänge also bitte meine Funktionen ans Ende von
> funcListe :-)

Das sollte sich nun erledigt haben...

> Um das Vertrauen in die präsentierten Algorithmen zu erhöhen, habe ich einen
> unittest geschrieben - nicht schön, aber leicht erweiterbar. Einige
> Lösungen bestehen nicht alle Tests. 

Das liegt aber hautpsaechlich an der etwas ungenauen Spezifikation. So
hat ein derartiger Algorithmus nur bei n>1 Sinn. Ausserdem ist nicht
festgelegt was zB mit der Liste [1,3,4,6] passieren soll, soll 3,4
zusammengefasst werden oder nicht?

> Hier die Zeiten auf meinem Rechner:

Bei deinen Algorithmen ist mir aufgefallen, dass sie bei größerem n
gegebenueber anderen Algorithmen langsamer werden. Bei kleinem n aber ist
besonders die schnelle Variante bisher ungeschlagen :)

Anzahl Listenelemente: 100000
Anzahl Loops: 10
Laufzeit pro Loop im Schnitt:
  Jan       :    0.3910 sec (Jan Voges)
  Jan2      :    0.2944 sec (Jan' Einzeiler)
  Rene_y2   :    0.3447 sec (Rene Liebscher mit reduce)
  Rene_x    :    0.2541 sec (Rene Liebscher mit Generator)
  boesi     :    0.1942 sec (Alexander B÷secke)
  Christian :    0.3086 sec (Christian Tanzer)
  Detlef    :    0.2357 sec (Detlef Lannert)
  Gregor    :    0.2474 sec (Gregor Lingl)
  Peter     :    0.1916 sec (Peter Otten - sauber)
  Peter2    :    0.1570 sec (Peter Otten - schnell)
  Gerson    :    0.1813 sec (Gerson Kurz)

Anzahl Listenelemente: 1000000
Anzahl Loops: 10
Laufzeit pro Loop im Schnitt:
  Jan       :    4.0364 sec (Jan Voges)
  Jan2      :    3.0187 sec (Jan' Einzeiler)
  Rene_y2   :    3.6156 sec (Rene Liebscher mit reduce)
  Rene_x    :    2.7027 sec (Rene Liebscher mit Generator)
  boesi     :    2.1021 sec (Alexander B÷secke)
  Christian :    3.2338 sec (Christian Tanzer)
  Detlef    :    2.5933 sec (Detlef Lannert)
  Gregor    :    2.6628 sec (Gregor Lingl)
  Peter     :    3.1593 sec (Peter Otten - sauber)
  Peter2    :    2.7808 sec (Peter Otten - schnell)
  Gerson    :    1.9040 sec (Gerson Kurz)
  
  
cu boesi
-- 
                                                     #1671 : icq-intern
Ohne Dich waeren die Gefuehle von heute          #73628288 : icq-extern
nur die leere Huelle der Gefuehle von damals      boesi111 : aim
      .-==Die fabelhafte Welt der Amelie==-.          i171 : reallife