Diskussion zum kleinen Test von IT-Teamplayer

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Hm, ich schaffe es nur auf 46 Zeichen ...
BlackJack

@nomnom: Kürzer habe ich ein Programm was wirklich rechnet und nicht einfach nur die Konstante ausgibt, auch noch nicht bekommen.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Meine ersten Versuche liefen auch erst ein paar mal auf 48 Zeichen und dann auf 46 Zeichen hinaus. Um niedriger zu kommen muss man etwas umdenken :mrgreen:
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

49 Zeichen im ersten Versuch mit fest verankerter 3 und 5 und eben der Summe aus den möglichen Zahlen von 1-666. Die Implementierung ist keine Funktion und nutzt kein print, sondern einfach nur den Rückgabewert des Aufrufs.

EDIT: 47 durch Löschen von 2 Leerzeichen.
EDIT2: 45.
EDIT3: 44.
Zuletzt geändert von snafu am Mittwoch 6. Juli 2011, 10:11, insgesamt 3-mal geändert.
BlackJack

@Xynon1: Ich bin jetzt ohne den Ansatz zu ändern immerhin auf 45 gekommen.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Ich komme mit meinem Standardansatz auf 40.

Edit: Ohne Funktion und Ausgabe.
Edit2: Okay, es klappt wohl, aber ich jetzt wohl erstmal beweisen, warum das immer richtig ist ;)
Edit3: 39 mit der unbewiesenen Annahme und ansonsten 43
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

snafu hat geschrieben:49 Zeichen im ersten Versuch mit fest verankerter 3 und 5 und eben der Summe aus den möglichen Zahlen von 1-666. Die Implementierung ist keine Funktion und nutzt kein print, sondern einfach nur den Rückgabewert des Aufrufs.
Wenn ich das so mache wie Du (und wenn ich es richtig verstanden habe; jetzt wird bei mir auch am Ende keine Variable definiert), komme ich auf 39 Zeichen.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Ich komme auf 36 Zeichen als Statement und 45 als Funktion. Die Zahlen 666, 3 und 5 sind in beiden Fällen fest vorgegeben (wie in der Aufgabenstellung verlangt), sonst könnte ich noch 2 Zeichen sparen.
Bottle: Micro Web Framework + Development Blog
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hmm, 36. Ich konnte mich gerade auf 37 verbessern.
Das Leben ist wie ein Tennisball.
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Für den trivialen Ansatz ohne function und `print` brauche ich 44 Zeichen.

Ich bin jetzt ja schon neugierig was ihr da noch anders gemacht habe...
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Bin auch auf 37 runter. :D
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Defnull hat geschrieben:Ich komme auf 36 Zeichen als Statement und 45 als Funktion.
37 Zeichen ohne Funktion und Ausgabe ist kein Ding. Aber wo man da noch 1 Byte abzwacken kann ... :roll:
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Ich habe das \n am Schluss nicht mit gezählt?

Ansonsten können wir von mir aus auch auflösen :) Ich will nämlich wissen, ob meine Lösung überhaupt stimmt.
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Defnull hat geschrieben:Ich habe das \n am Schluss nicht mit gezählt?
Habe ich auch nicht - ist ja nur 1 Statement ohne Zeilenumbruch.
Defnull hat geschrieben:Ansonsten können wir von mir aus auch auflösen :) Ich will nämlich wissen, ob meine Lösung überhaupt stimmt.
Naja, das reine Ergebnis verrät ja noch nicht viel. Bei mir kommt 103298 heraus.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

@numerix
Dann hast du aber nur bis 665 gezählt.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Bei mir kommt 118148 raus, aber mein Code ist ja auch länger, deshalb muss ja mehr bei rumkommen ;) :D
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Defnull hat geschrieben:Ansonsten können wir von mir aus auch auflösen :)
Dann will ich mal mit dem Stopp der Arbeitszeitvernichtung anfangen:

Code: Alles auswählen

sum(x*(x%3*x%5<1)for x in range(667))
Das Leben ist wie ein Tennisball.
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@Xynon1: Die Aufgabe hieß ja:
Schreibe eine Funktion in Python, die die Summe aller Zahlen zwischen 1 und 666, die durch 3 oder 5 teilbar sind, ausgibt.
zwischen == [2,665], nicht von...bis == [1,666].
In specifications, Murphy's Law supersedes Ohm's.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

pillmuncher hat geschrieben:@Xynon1: Die Aufgabe hieß ja:
Schreibe eine Funktion in Python, die die Summe aller Zahlen zwischen 1 und 666, die durch 3 oder 5 teilbar sind, ausgibt.
zwischen == [2,665], nicht von...bis == [1,666].
Exakt, so isses.
@EyDu: Meine Lösung sieht genauso aus, bis auf die 667 (wo 666 stehen muss).
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

@EyDu
Jupp, meins sieht bis auf das x genauso aus.
Vorher mit 38 sah es so aus

Code: Alles auswählen

sum(n for n in range(666)if n%3*n%5<1)
Als Funktion bzw. LAmbda Ausdruck sieht meines so aus

Code: Alles auswählen

f=lambda r,d:sum(n for n in range(r)if[m for m in d if n%m<1])
@pillmuncher, numerix
Ok, überredet macht aber bei der Zeichen länge keinen Unterschied und das ist so ziemlich das einzigste wo ich drauf geachtet habe :mrgreen:
Zuletzt geändert von Xynon1 am Mittwoch 6. Juli 2011, 14:46, insgesamt 1-mal geändert.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Antworten