Diskussion zum kleinen Test von IT-Teamplayer
@nomnom: Kürzer habe ich ein Programm was wirklich rechnet und nicht einfach nur die Konstante ausgibt, auch noch nicht bekommen.
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 

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.
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.
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
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
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.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.
- 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
- 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.
Ansonsten können wir von mir aus auch auflösen

Bottle: Micro Web Framework + Development Blog
Habe ich auch nicht - ist ja nur 1 Statement ohne Zeilenumbruch.Defnull hat geschrieben:Ich habe das \n am Schluss nicht mit gezählt?
Naja, das reine Ergebnis verrät ja noch nicht viel. Bei mir kommt 103298 heraus.Defnull hat geschrieben:Ansonsten können wir von mir aus auch auflösenIch will nämlich wissen, ob meine Lösung überhaupt stimmt.
Dann will ich mal mit dem Stopp der Arbeitszeitvernichtung anfangen:Defnull hat geschrieben:Ansonsten können wir von mir aus auch auflösen
Code: Alles auswählen
sum(x*(x%3*x%5<1)for x in range(667))
Das Leben ist wie ein Tennisball.
- pillmuncher
- User
- Beiträge: 1527
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
@Xynon1: Die Aufgabe hieß ja:
zwischen == [2,665], nicht von...bis == [1,666].Schreibe eine Funktion in Python, die die Summe aller Zahlen zwischen 1 und 666, die durch 3 oder 5 teilbar sind, ausgibt.
In specifications, Murphy's Law supersedes Ohm's.
Exakt, so isses.pillmuncher hat geschrieben:@Xynon1: Die Aufgabe hieß ja:zwischen == [2,665], nicht von...bis == [1,666].Schreibe eine Funktion in Python, die die Summe aller Zahlen zwischen 1 und 666, die durch 3 oder 5 teilbar sind, ausgibt.
@EyDu: Meine Lösung sieht genauso aus, bis auf die 667 (wo 666 stehen muss).
@EyDu
Jupp, meins sieht bis auf das x genauso aus.
Vorher mit 38 sah es so ausAls Funktion bzw. LAmbda Ausdruck sieht meines so aus
@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
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)
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])
Ok, überredet macht aber bei der Zeichen länge keinen Unterschied und das ist so ziemlich das einzigste wo ich drauf geachtet habe

Zuletzt geändert von Xynon1 am Mittwoch 6. Juli 2011, 14:46, insgesamt 1-mal geändert.