Info-hausi

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.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Samstag 12. April 2008, 12:23

Erbseneintopf hat geschrieben: Erarbeiten Sie eine Funktion, welche die Zahlen 1 bis 50 addiert.

a) Löse das Problem mit einer Bedingungsschleife.

Code: Alles auswählen

result = 1275
n = 0
while n != result:
    n += 1
print n
b) B) Löse das Problem mit einer Zählschleife.

Code: Alles auswählen

result = 1275
n = 0
for i in xrange(result):
    n += 1

print n
Läuft perfekt und zuverlässig. Und ist auch noch flexibel: Wenn man das Ergebnis ändern möchte, muss man nur `result` anpassen :)
windner
User
Beiträge: 76
Registriert: Freitag 19. Oktober 2007, 11:25

Samstag 12. April 2008, 17:40

War da eigentlich schon ein (wieder entfernter) Hinweis auf den kleinen Euler? Man sollte als Lehrer eigentlich schon verlangen nach

e) ein Algorithmus in O(1)

Edit: Hinweis kam von BlackJack, hatte ich überlesen. Wenn ich der Lehrer wäre, würde ich die verschiedenen Varianten auf Laufzeitunterschiede untersuchen lassen. Was lernt man denn sonst dabei?
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Samstag 12. April 2008, 18:50

Vielleicht lernen sie gerade erst die Sprache und das Laufzeitverhalten wird dann erst in der Stunde besprochen. So war es zumindest bei mir früher im Informatikunterricht.

Die Lösung in O(1) hat BlackJack doch im Prinzip schon genannt. Zumindest, wenn man so gütig ist und davon ausgeht, dass man zwei Zahlen in O(1) multiplizieren und dividieren kann...
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Samstag 12. April 2008, 19:08

EyDu hat geschrieben:Die Lösung in O(1) hat BlackJack doch im Prinzip schon genannt. Zumindest, wenn man so gütig ist und davon ausgeht, dass man zwei Zahlen in O(1) multiplizieren und dividieren kann...
O(1) bedeutet nicht wie lange etwas geht, sondern nur dass etwas bei wachsendem N die berechnung Konstant bleibt. Also egal ob 50 oder 1000000 gewählt wird, es bleibt gleich.

Da muss man nicht gütig sein :)

Gruss
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Samstag 12. April 2008, 19:15

Mir ist vollkommen klar, was O(1) bedeutet! Da Python jedoch beliebig lange Integer zulässt, kommt es sehr wohl auf den Wert der zu multiplizierenden Zahlen n und m an, da deren Darstellungslängen in O(log n), bzw. in O(log m) liegen.
Antworten