BlitzQuiz - AUFLÖSUNG: Geheime Bild-Botschaften
Übersicht

Gehe zu Seite Zurück 1, 2, 3, 4, 5 Weiter
![]() |
Sir Gauss der III |
![]() Antworten mit Zitat ![]() |
---|---|---|
die beiden interessieren mich auch mal.
Durch den anreiz, die schnellste Lösung zu finden, hab ich mich mal an die Aufgabe gemacht. Das erste programm benötigt ~120, das verbesserte dann ~60 Millisecs. Naja, für dir reine Prüfaufgabe. für alles zusammen so um die 350. an die 30 bin ich nicht ran gekommen. ![]() Tipp: Debugger ausgeschaltet? das bringt so einiges. Jetzt bin ich halt auf das Ergebniss gespannt |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da ich es über Rekursion löse, und ich für jeden Funktionsaufruf ca 6.7ms brauche, dauert es ohne Debugger bei mir ca 13.5 Sekunden -.-
Aber ich hab es auch denke ich mal ziemlich umständlich gelöst, ich denke mir mal ne neue Lösung aus ^^ mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich hab das heute mal in der Schule gemacht, und ich komme ohne Debugger ebenfalls auf 30ms. Jedoch denke ich, dass das auch stark mit der verwendeten Hardware zusammenhängt wie schnell das ist. Z.B.: Hat es auf meinen Schulrechnern, mit etwas älterer Hardware satte 110ms im Schnitt gedauert. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
genau aus solchen Gründen ergibt es auch überhaupt keinen Sinn die Laufzeit seines Programmes anzugeben. "Mein Programm braucht 50ms" ist eine völlig leere Aussage. Da kommts auf die Maschine an, was gerade läuft, die Temperatur und den Gemütszustand des Programmierers. Viel interessanter wäre es, das LaufzeitVERHALTEN zu kennen. Das Bild ist schon ziemlich gross, vllt könnte man mit einem kleineren Bild beginnen und das dann immer grösser machen und sich einen Plot zeichnen lassen, wie sich die Laufzeit im Schnitt ändert. SOWAS wäre aussagekräftig. MfG, Darth |
||
Diese Signatur ist leer. |
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Darth da hast du recht, deshalb
![]() Eine kleine Erklärung hierzu: Die Breite des Graphen ist die Grösse des Bildes in der Höhe (1 bis 600) Die Höhe des Graphen sind die Millisekunden die mein Programm gebraucht hat Ich hab jetzt einfach die Bilder die er durchsucht aus dem vorgegebenem Bild von oben links weg herausgeschnitten. Falls ihr noch höhere Werte wie bis zu einer Grösse von 800x600 Pixeln sehen wollt, brauch ich ein grösseres Bild ![]() mfg Grafe |
||
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn wir schon dabei sind, Laufzeiten zu vergleichen: Mein Programm läuft in 0-1ms durch ![]() Zugegebenermassen habe ich es in BMax geschrieben, eine B3D-Version mache ich aber vielleicht noch zum Vergleich. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Noobody
Ich weiß ja, dass du (programmierteschnisch) ein Freak bist, aber 0-1 ms, in der Zeit lese ich das Bild gerade mal aus, da habe ich aber noch kein Rechteck gefunden (i3M330@2.13GHz, 4GB Ram) Ich habe es bisher auch nur in BM versucht, da es mir für diesen Zweck auch schneller erscheint [Edit] Ok, 16ms, habe es mit eigenen Bildern überprüft und das Ergebnis müsste somit passen. Verdammt, das Kleingedruckte überlesen, mein Code unterscheidet nciht zwischen Quadraten und Rechtecken, da muss ich wohl noch mal ran ![]() |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man ich will die Auflösung jetzt mal haben hier ich kann das nicht fassen oO
Und ich war so stolz auf meine Lösung ! Ich fang glaub ich nochmal in Bmax an ... mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe jetzt auch einmal ein entsprechendes Programm in BlitzMax programmiert.
Der Algorithmus ohne das Laden des Bildes - hier lahmt die Festplatte - braucht etwa 10 ms. Zum Vergleich: Mein PC braucht zum Durchiterieren des Bildes 2 bis 3 ms. (Schleifen ohne Inhalt) Hier ist das Laufzeitverhalten: Eine Frage: Ist das Ergebnis eine runde Zahl? (Ich bin zu faul, mein Programm mit eigenen Bildern zu testen. ![]() mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
BlitzMoritz |
![]() Antworten mit Zitat ![]() |
---|---|---|
mpmxyz hat Folgendes geschrieben: Eine Frage: Ist das Ergebnis eine runde Zahl?
Ich weiß nicht, welche Zahl für dich "rund" ist, vielleicht die 0 oder die 8? ![]() Bitte keine Ergebnisse öffentlich vorzeitig verraten, habt doch wenigstens eine Woche Geduld. Viele haben mir ihr Ergebnis per PN geschickt, das kannst du ja dann auch machen. Deine Frage nach der "runden Zahl" lässt die Insider vielleicht vermuten, dass du wie s-key eventuell nicht das Kleingedruckte zuende gelesen hast ![]() |
||
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
mpmxyz hat Folgendes geschrieben: Zum Vergleich: Mein PC braucht zum Durchiterieren des Bildes 2 bis 3 ms. (Schleifen ohne Inhalt)
Folgender Code benötigt bei dir 2-3ms? BlitzMax: [AUSKLAPPEN] For Local X:Int = 0 Until 800 |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich Frag mich wie ihr in 2-3ms das komplette Bild durchgehen könnt (einfach nur die Schleife ohne Auslesen etc.). Dieser Code braucht bei mir schon 17ms :
BlitzMax: [AUSKLAPPEN] Global Image_Source:TPixmap = LoadPixmap( "BlitzQuiz-Quadrate.png" ) Mal davon abgesehen ob das der richtige Lösungsansatz ist oder nicht, wie krigt ihr diese Zeiten hin ? mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke, dass es daran liegt, dass du jedes mal auf eine Methode oder Funktion der Pixmap zufgreifst, zieht an der Performance, speichere die Werte vorher, so habe ich es auch gemacht. | ||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, selbst der code :
BlitzMax: [AUSKLAPPEN] Local pix_x:Int, pix_y:Int, time_need:Float = MilliSecs( ) Gibt mir bei 100 durchläufen durschnittlich ~15ms zurück... Entweder mein Prozessor ist einfach zu Lahm oder iwas stimmt da wirklich nicht... mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Sir Gauss der III |
![]() Antworten mit Zitat ![]() |
---|---|---|
B3D (ka ob Bmax das auch so kann)
Code: [AUSKLAPPEN] For a=0 to breite step x
... next benötigt ja schon mal wieder was weniger. Denoch bin ich mal gespannt, wie hier so die enormen Zeiten zustande kommen |
||
![]() |
BlitzMoritz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich fasse 'mal die drei grundsätzlichen, bereits mehr oder weniger direkt genannten Gründe für mögliche Unterschiede in den gemessenen Geschwindigkeiten zusammen:
1.) Völlig unterschiedliche technische Gegebenheiten der Hardware und momentane Auslastungen verbieten den direkten Vergleich gemessener Millisekunden. darth hat Folgendes geschrieben: Da kommts auf die Maschine an, was gerade läuft, die Temperatur ...
2.) Die Effizienz des Lösungsalgorithmus ToeB hat Folgendes geschrieben: Aber ich hab es auch denke ich mal ziemlich umständlich gelöst, ich denke mir mal ne neue Lösung aus ^^
3.) Unterschiedliche Auffassungen darüber, ab wann die Zeitmessung zu beginnen hat. Manch' einer misst ganz zu Beginn beim Programmstart, ein anderer erst wenn das Bild geladen ist ... mpmxyz hat Folgendes geschrieben: Der Algorithmus ohne das Laden des Bildes - hier lahmt die Festplatte - braucht etwa 10 ms. und ein dritter gar, wenn bereits alle Farbdaten in Arrays eingelesen wurden und erst danach die eigentliche Suche beginnt. Ich denke, da liegt der Hase im Pfeffer. Ohne Übereinkunft bzw. einsehbarer Code ist daher keine Vergleichbarkeit gegeben.
Nur Punkt 2) sollte das Potential zum Wetteifern haben - das wird sich dann mit den in drei Tagen (hoffentlich zahlreich ![]() Und damit sei der Geschwindigkeitsschwanzvergleich erst einmal in die Warteschleife gebracht, wobei hier ja umgekehrt gilt: je kürzer desto besser ![]() __________________________________________________________________________ __________________________________________________________________________ Edit: Genau eine Woche ist vergangen, da will ich nun 'mal ganz still und heimlich bekanntgeben .... Auflösung des zweiten Quiz' "Quadrate zählen": Das Bild enthält insgesamt 2000 Rechtecke, von denen 659 die gesuchten Quadrate sind. (Wer das rein-weiße Gesamtbild mitgezählt hat, kommt auf 2001 Rechtecke) Hier mein eigener Lösungscode: Es lebe die rekursive Funktion, yeah ![]() BlitzMax: [AUSKLAPPEN] Global RechtsX%, UntenY%, PM:TPixmap = LoadPixmap("BlitzQuiz-Quadrate.png") |
||
![]() |
Blitzprogger |
![]() Antworten mit Zitat ![]() |
---|---|---|
So ganz einfach editieren, dass niemand was mitkriegt - wie fies. ![]() Ich habe erst jetzt bemerkt, dass der Wettbewerb vorbei ist. Aber freuen tu ich mich, weil ich die richtige Lösung erhalten habe und möchte hier mal meinen sehr schlecht kommentierten Code präsentieren: BlitzBasic: [AUSKLAPPEN] AppTitle "Uber1337 Quadratezähler" Wenn hier noch die anderen ihren Code posten, sehe ich ihn mir gerne an, bin gespannt wie ihr das Rätsel gelöst habt! mfg, Blitzprogger |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
So hier noch meinen Code:
BlitzMax: [AUSKLAPPEN] SuperStrict Er ist nicht soo hübsch... mfg Grafe |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab auch Rekursion ![]() BlitzBasic: [AUSKLAPPEN] Graphics 800, 600, 16, 2 Hierbei wird schritt für schritt gesucht. Es werden Pixelreihe für Pixelreihe durchgegangen, bis man auf einen Pixel stößt, der eine andere Farbe hat als der Hintergrund. Dann wid die Höhe und die Breite bestimmt und als Type hinzugefügt in eine Liste. In diesem gefundenem Rechteck wird erneut mit dem Selben Verfahren (deswegen Rekursion) nach Rechtecken gesucht, wenn welche gefunden wurden wieder usw.. Dann wird alles in der Liste gezählt und anschließend ausgewertet und angezeigt. mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ist meine Lösung:
BlitzMax: [AUSKLAPPEN] SuperStrict Am Anfang hatte ich es auch über Rekursion gelöst, jedoch ist mir dann aufgefallen das es genau das selbe tut wie die jetzt Funktion. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Gehe zu Seite Zurück 1, 2, 3, 4, 5 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group