Seite 2 von 4

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Dienstag 5. Juli 2011, 23:01
von nomnom
Hm, ich schaffe es nur auf 46 Zeichen ...

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Dienstag 5. Juli 2011, 23:26
von BlackJack
@nomnom: Kürzer habe ich ein Programm was wirklich rechnet und nicht einfach nur die Konstante ausgibt, auch noch nicht bekommen.

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 08:33
von Xynon1
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:

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 09:34
von snafu
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.

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 09:37
von BlackJack
@Xynon1: Ich bin jetzt ohne den Ansatz zu ändern immerhin auf 45 gekommen.

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 10:18
von gkuhl
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

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 11:46
von nomnom
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.

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 12:12
von Defnull
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.

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 13:02
von EyDu
Hmm, 36. Ich konnte mich gerade auf 37 verbessern.

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 13:06
von .robert
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...

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 13:32
von Xynon1
Bin auch auf 37 runter. :D

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 14:02
von numerix
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:

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 14:09
von Defnull
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.

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 14:18
von numerix
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.

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 14:26
von Xynon1
@numerix
Dann hast du aber nur bis 665 gezählt.

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 14:30
von frabron
Bei mir kommt 118148 raus, aber mein Code ist ja auch länger, deshalb muss ja mehr bei rumkommen ;) :D

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 14:34
von EyDu
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))

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 14:39
von pillmuncher
@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].

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 14:44
von numerix
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).

Re: Diskussion zum kleinen Test von IT-Teamplayer

Verfasst: Mittwoch 6. Juli 2011, 14:44
von Xynon1
@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: