Mein neues Gebot:Mit Haskell bin ich auf 104 Zeichen gekommen.
Python-Programm mit 98 Zeichen!
:S ... da versteh ich ja mal gaaaaaaar nixBlackJack hat geschrieben: Hey, aber das ist ja sowieso alles "Betrug" weil da so ein riesen fetter Python-Interpreter dranhängt. Es geht auch mit 19 Bytes statischen Daten und 98 Bytes x86-Assembler: http://paste.pocoo.org/show/28359/ (Assembler: NASM, BS: Linux)
Dann sind sie ja enterprise-ready.DarXun hat geschrieben:Meine Mitschüler könnens nämlich überhaupt nich x'D,
dass sieht man schon wenn man sich die Funktionen von denen anschaut...
Für jeden Buchstaben im Alphabet eine Abfrage... x_X
BlackJack hat geschrieben:Hey, aber das ist ja sowieso alles "Betrug" weil da so ein riesen fetter Python-Interpreter dranhängt. Es geht auch mit 19 Bytes statischen Daten und 98 Bytes x86-Assembler: http://paste.pocoo.org/show/28359/ (Assembler: NASM, BS: Linux)
Code: Alles auswählen
mov bl, -45
mov bh, -30
Code: Alles auswählen
mov bx, 0xE2D3
Stimmt!BlackJack hat geschrieben:@HWK: Das spart kein Byte weils ein 16-Bit-MOV im 32-Bit-Modus ist und deshalb ein 0x66-Byte vor den Befehl geklatscht wird. Unter DOS hätte das was gebracht, bei modernen Betriebssystemen nicht mehr. Früher war halt alles besser.
Code: Alles auswählen
mov ecx, eax
Warum werden eigentlich die Semikolonse (;)) verwendet und keine Zeilenumbrüche? Wenn man von Newlines ausgeht, sind die auch nur ein Byte groß, aber der Code ist wesentlich lesbarer (wenngleich er sich natürlich in der Vertikalen über mehr Zeilen erstreckt).BlackJack hat geschrieben:Ist sogar etwas kürzer (in Zeichen) als die letzte Version mit der "statischen" Liste.Code: Alles auswählen
import sys;w=sys.stdout.writelines;w('P3 90 60 1 ');N=[45-int((324-y*y)**.5) for y in range(18)]+[45]*12;w('1 %d %d '%(x,x) for x in sum(([1]*n+[0]*(45-n)*2+[1]*n for n in N[::-1]+N),[]))
Und weil es soviel Spaß macht:BlackJack hat geschrieben:@HWK: Stimmt, Danke! Das ``lea`` war auch unnötig komplex und beim "exit" habe ich ein ``mov eax, 1`` vergessen "kürzer" zu schreiben. Nun ist der Code-Teil auf 94 Bytes runter.
http://paste.pocoo.org/show/28484/
Code: Alles auswählen
inc ebx
Code: Alles auswählen
inc eax
Code: Alles auswählen
mov edx,eax
inc edx
inc edx
Code: Alles auswählen
add eax,ecx
Ich glaube nicht, dass der Apfel von dieser Art der Lösung profitieren könnte;meneliel hat geschrieben: irgendwann würden mich eure Lösungsideen dann ja auch mal interessieren
ich vermute, die gibt es aber erst, wenn apple ne Lösung gepostet hat, oder?
pütone hat geschrieben: ....
Ich glaube nicht, dass der Apfel von dieser Art der Lösung profitieren könnte;
verstehen wird er sie nicht, und dem Lehrer kann er sie so auch nicht anbieten,
weil der ebenfalls sofort sieht, dass sie nicht vom Apfel sind.
Ich hatte aber darauf gehofft, dass der ein oder andere noch einsteigt in das Rennen um den kürzesten PYTHON(!)-Quelltext zum Ausgangsproblem.
Es ist schon erstaunlich, was möglich ist, wenn man über ein (in diesem Fall doch sehr überschaubares) Problem länger nachdenkt ...BlackJack hat geschrieben:Ich bin jetzt bei 97 Zeichen.