Kurzer Prozess: Size Contest bei SPOJ

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Hm, stimmt, das Leerzeichen und die Klammern sind eigentlich schon fast zu offensichtlich :)
Das mit den Wahrheitswerten war mir zwar bewusst, aber auf die Idee, mir das hier zunutze zu machen, bin ich nicht gekommen.
Aber auf 53 kommt man damit immer noch nicht oder? :o Da würde mir jetzt echt nichts mehr einfallen aber vielleicht ist das ja auch von Grund auf der falsche Ansatz.
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Geil... Codegolf im dt. Python-Forum und ich sehs erst jetzt... :cry:
BlackJack

@Nocta: Also ich bin jetzt mit diesem Ansatz runter auf 59 Bytes. Wo ich da noch 6 Bytes rausquetschen soll, sehe ich nicht. :-(

Also muss es wohl noch einen anderen Ansatz geben.
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

@nocta: Ich bin mit deinem Ansatz bei 56. Da geht noch was...

EDIT: Korrigiere: 55
EDIT2: 54, hmm ein Zeichen fählt noch... :?:
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

HerrHagen hat geschrieben:Geil... Codegolf im dt. Python-Forum und ich sehs erst jetzt... :cry:
Ich wollt mal fragen, was daran eigentlich so traurig ist. Ich meine, man lernt in jedem Fall was dazu.
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

Mal was andres:
Wie lang würdet ihr denn durchschnittlich an sowas sitzen, ohne Absprache im Forum?
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Ich wollt mal fragen, was daran eigentlich so traurig ist. Ich meine, man lernt in jedem Fall was dazu.
Traurig ist, dass ich es erst jetzt gesehen hab! Ich mag Code-Golf. Wenn ich es nicht mögen würde, hätte ich mich wohl kaum mit 54 Zeichen beteiligt...
Zuletzt geändert von HerrHagen am Sonntag 22. Februar 2009, 21:54, insgesamt 1-mal geändert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Craven hat geschrieben:Wie lang würdet ihr denn durchschnittlich an sowas sitzen, ohne Absprache im Forum?
Die Absprache macht es doch erst spaßig. Hacker-Community-Denken eben :)

Andererseits, ich beteilige mich gar nicht am Codegolf.. da spiele ich lieber mit anderen, ebenso unnützen Sachen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Sooo, nun habe ich auch eine 54 Byte-Lösung.
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Ich hab vielleicht noch nicht lang genug mit Python rumgespielt um intuitiv irgendwelche 10byte kürzere Lösungen zu finden.
Wie kommt ihr mit meinem Ansatz noch weiter runter? Ihr könnt mir ja mal einen Tipp geben wenn ihr nicht bereit seid, eure Lösungen zu veröffentlichen :)
Irgendwie steh ich auf Wettbewerbe in denen ich schlecht bin :lol:
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

So, die 53 steht da...
Ab jetzt wirds schwer...
Mich würde mal der Ansatz von fxr interessieren. Sein Programm läuft viel länger. Er muss einen anderen Weg gegangen sein.

MFG HerrHagen
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

HerrHagen hat geschrieben:So, die 53 steht da...
Du machst mir Angst ... :wink:
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

Perl ist schon ein bisschen extrem, oder? Mit 24 Zeichen ...
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Perl ist ja auch nur ein Synonym für line noise :twisted:
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

BlackJack hat geschrieben:Sooo, nun habe ich auch eine 54 Byte-Lösung.
Ich hab jetzt auch eine. 53.

Code: Alles auswählen

# Code auf Wunsch von numerix und HerrHagen entfernt
Zuletzt geändert von hendrikS am Montag 23. Februar 2009, 12:00, insgesamt 1-mal geändert.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

hendrikS hat geschrieben:
BlackJack hat geschrieben:Sooo, nun habe ich auch eine 54 Byte-Lösung.
Ich hab jetzt auch eine. 53.
Gratuliere!!!

Ich denke, es wäre allerdings im Sinne von SPOJ, wenn du den Code hier wieder entfernen würdest, weil ansonsten damit zu rechnen ist, dass in nächster Zeit eine Reihe von 53-Byte-Lösungen bei SPOJ eingeschickt werden (die zufällig völlig identisch mit deinem Code sind) und so das Ranking verfälschen.

Ich bin dir natürlich dankbar für den Code, weil er zumindest einen "Trick" enthält, der mir bisher nicht eingefallen ist und vielleicht ja auch für andere Aufgabenstellungen mal einsetzbar ist.

Jetzt muss ich mal sehen, wie ich damit umgehe, dass ich nun keine eigene bessere Lösung mehr entwickeln kann (mein derzeitiger Stand waren 59 Bytes), ohne von deinem Code zu profitieren ... :cry:

@HerrHagen: Was die 53 Bytes von fxr angeht, so vermute ich, dass er mit "re" gearbeitet hat. Der etwas erhöhte Speicherbedarf spricht für einen import, die Geschwindigkeit deutet auf "re" hin ... :wink:
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

numerix hat geschrieben:Jetzt muss ich mal sehen, wie ich damit umgehe, dass ich nun keine eigene bessere Lösung mehr entwickeln kann (mein derzeitiger Stand waren 59 Bytes), ohne von deinem Code zu profitieren ...
Ich denke, ich habe einen Weg gefunden; die eine Sache, die deinen Code von meinem unterschied, war mir gestern abend auch noch eingefallen, aber die Idee, die den Code so richtig kurz macht, wäre mir im Leben nicht eingefallen. Damit loche ich mit 58 Bytes ein ...
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

@hendrikS: bitte Code entfernen, sonst ist es ja kein Rätsel mehr!

@numerix: Meine Lösung ist die selbe wie bei hendirkS.
Mittlerweile glaub ich das fxr auch keine andere Lösung hat. Schau dir das Einsendedatum der Lösungen mit 0.1x sek. Laufzeit an. Die sind alle von 2006 oder älter. Vielleicht haben die bei SPOJ ja da ihr Computersystem verändert, aber die Programme nicht neu laufen lassen?
Ich glaube nicht daran, dass es noch eine andere Variante gibt die ebenfalls so kurz (oder kürzer) ist. Solange man re bei Python importieren muss, wird eine solche Lösung kaum kürzer sein. (Eine Idee wäre noch alle TDLF durch 2* zu ersetzen und das auszuführen, so dass print 2*2*2 dasteht).

MFG HerrHagen
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

hendrikS hat geschrieben:
BlackJack hat geschrieben:Sooo, nun habe ich auch eine 54 Byte-Lösung.
Ich hab jetzt auch eine. 53.

Code: Alles auswählen

# Edit: code auf Wunsch von numerix und HerrHagen entfernt
Benutzeravatar
Blade Runner
User
Beiträge: 21
Registriert: Montag 23. Februar 2009, 11:41

So, der erste Beitrag. :)

Als Gast hab ich schon öfter hereingeschaut, allerdings hab ich leider erst gestern diesen Thread gefunden.
Ich hab mich schon an Aufgaben bei SPOJ versucht, aber ich glaube, dass es viel mehr Spaß macht, sie hier zu diskutieren; vor allem, da man mehr lernt, denke ich.

Jedenfalls würde ich da gerne dran teilnehmen, sobald ihr eine neue Aufgabe anfangt. :)

Gruß, BR
Antworten