[QUIZ#15] Lisas Osternest

Enumerator

Mitglied Kamel
Wieviele verschiedene Eier können denn eure Programme verwalten?
Theoretisch irgenwas bei CHAR_BIT * sizeof(long long) - wenn meine Erinnerung an den Quellcode von Perl5 mich nicht trügt... :p

[EDIT]
Ich hab es grade ausprobiert, mein Programm schafft maximal 1625 verschiedene Eier.
Auf meinem System (32b/i386/OpenBSD) sind es nur 64. Reicht aber. Oder hast Du mehr verschiedene Sweeties in deinem Schrank? :p
 
Zuletzt bearbeitet:

Jellysheep

Erfahrenes Mitglied
:offtopic: Bei mir gibt es nur sechs Sorten an Eiern und zwei Hasen. :)
Mir würden wahrscheinlich auch nur 30 verschiedene einfallen. :)
Theoretisch irgenwas bei CHAR_BIT * sizeof(long long) - wenn meine Erinnerung an den Quellcode von Perl5 mich nicht trügt... :p
Oh, das wäre enorm viel. Da bekomme ich gleich Minderwertigkeitskomplexe. :)
Mein Programm kann inzwischen auch sehr viel, evtl. sogar so viel wie deines, aber aufgrund meiner schlechten Programmierung würde es zum Berechnen ewig dauern.
1500 verschiedene Eier brauchen bei mir schon zwei Minuten... :-(
Aber dafür habe ich eine schöne Progressbar, die die Wartezeit verkürzt. :p
Ich denke, ich werde das Programm noch in der Geschwindigkeit optimieren und dann morgen abgeben.
Ich bin schon mal gespannt, welchen Lösungsweg die anderen Teilnehmer genommen haben. :)
 

Turri

Erfahrenes Mitglied
1500 verschiedene Eier brauchen bei mir schon zwei Minuten... :-(
Kannst du mir deinen Datensatz zur Verfügung stellen?
Mir fallen keine 1500 Sorten ein. ;)

Mit 250 Leckereien von Matthias dauert mein Programm in der Debug-Version 3ms. :)
Ich habs mit C# als Konsolenanwendung gelöst.
Ist natürlich noch die Frage, ob die Lösung richtig ist.

Hier meine Lösung für die 250 Leckereien.
Code:
Optimale Auswahl: Waffel-Keks-Buttereier, Keks-Trüffelhase, Keks-Platineier, Marzipan-Sahne-Butter-Schlemmerhase
Masse: 498g
Nährwert: 3442kcal
Rechenzeit: 3ms
 

OnlyFoo

Erfahrenes Mitglied
Selbe Lösung in etwa 0.4sek mit python... 10000 Eier in unter 18 Sekunden.
Simples Oster-Hasen-Script:

Python:
import random
N = 10000
print 500
for i in range( N ):
    print "ei-%d" % random.randint(0, 10000000)
    print random.randint( 50, 100 ), random.randint( 200, 1000 )
 

Turri

Erfahrenes Mitglied
Ui cool OnlyFoo,

den Datensatzgenerator hab ich mal glatt übernommen.
Jetzt steht mein Prog mit 10000 Eiern bei 3,6s.
 

OnlyFoo

Erfahrenes Mitglied
Mit 250 Leckereien von Matthias dauert mein Programm in der Debug-Version 3ms. :)
Ich habs mit C# als Konsolenanwendung gelöst.
Ist natürlich noch die Frage, ob die Lösung richtig ist.

Jetzt steht mein Prog mit 10000 Eiern bei 3,6s.

Hab meine Version nochmal auf C++ portiert... In der debug-Version komm ich bei 250 Leckerlis auf 20ms, bei 10k jedoch auf knapp unter 800ms... Kompiliert mit -O4 bei 250: unter 1ms, bei 10k: knapp unter 300ms - da ist dann Einlesen der Datensätze bereits mit drinne... :)...
 

Turri

Erfahrenes Mitglied
Hab noch was gefunden im Code *freu*, nun komm ich in der
Release-Variante und 10.000 Datensätzen bei 75-80ms und mit
Debug-Variante und 10.000 Datensätzen bei 85-110ms raus. ^^
Inclusive dem Einlesen der Datensätze.

Bin dann wirklich mal auf die Lösungen gespannt. :)
 

Alexander Schuc

crazy-weasel
Soo.. hab mal schnell eine Lösung runtergehackt..

Eine Auswahl von 1.000.000 (1Mio) Süssigkeiten wird in ~5000ms verarbeitet, wobei das mit dem Einlesen ist. Die Auswahl selbst wird innerhalb von ~1600ms vorgenommen.

100.000 in ~450ms / ~130ms
10.000 in ~40ms / ~12ms

C# Release Build :) (..aber Debug nimmt sich nicht wirklich viel)

lg,..
 

OnlyFoo

Erfahrenes Mitglied
Auf was für Hardware? Meine Zahlen bezogen sich auf nen alten Pentium4 mit 3.06ghz :) - Aber bei den Unterschieden liegts wohl in erster Linie am Algorithmus :)