Ich brauche hilfe fuer zwei fragen!!!

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.
Antworten
Paschaking
User
Beiträge: 1
Registriert: Samstag 25. September 2021, 19:42

Geben Sie ein Beispiel für einen ganzzahligen Wert von n zwischen 0 und 100 an, für den der folgende Code eine Ausnahme auslöst

p = 0

for i in range(n):

if n % 3 == 0:

q = i + 4 if n < 40 else None

else:

q = i + 40

p += float(q) / 1000


Wie hoch ist die Laufzeitkomplexität des folgenden Algorithmus in Bezug auf n und m?





def print_all_codes(n, m):

def print_01_codes(current, num_digits):

if num_digits == 0:

print(current)

else:

print_01_codes('0' + current, num_digits - 1)

print_01_codes('1' + current, num_digits - 1)

upper_bound = 0

while True:

for i in range(upper_bound):

print_01_codes('', n)

if upper_bound > m:

break


Bei beiden Coden versuch ich zu loesen aber, ich kann den problem nicht finden.
Buchfink
User
Beiträge: 193
Registriert: Samstag 11. September 2021, 10:16

@Paschaking

hast Du diesen Code denn mal in z.B. einem Jupyter-Notebook versucht einzugeben?

In Python spielt die Formatierung eine Rolle. Daher wäre es sinnvoll, wenn du den Code in [ code]-Tags packst.
Benutzeravatar
Dennis89
User
Beiträge: 1125
Registriert: Freitag 11. Dezember 2020, 15:13

Ich kann den problem gar nicht verstehen.

Kannst du mal ausführlicher beschreiben, was du vor hast und was nicht funktioniert? Bitte mit vollständiger Fehlermeldung.

Den Code bitte mit Einrückungen in Code-Tags posten. Dazu auf "Vollständiger Editior" klicken und den </> -Buttton verwenden.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@Paschaking,

1. Fall:
Wenn man "n" = 0 setzt wird die for-Schleife nie durchlaufen. Da "q" aber nur innerhalb der Schleife definiert wird, gibt es eine Exception in der letzten Zeil, in der auf "q" zugegriffen wird.

2. Fall:
man kann deinem Code die Einrückung nicht ansehen. Man weiß also nicht sicher wann der rekursive Funktionsaufruf erfolgt und ob die while-True Schleife Teil des Else-Zweiges ist oder nicht. Den Codeausschnitt solltest du mal mit code-Tags posten So:

Code: Alles auswählen

print("So sieht Code in Code-Tags aus")
Das gilt eigentlich auch für den ersten Codeausschnitt, da hab ich es halt geraten. Ist aber auch nicht eindeutig.
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@Paschaking: Drei Ausrufezeichen wirken immer sehr einladend. Und wir wissen nicht, was Du schon versucht hast, wo soll man da ansetzen?
Für die erste Frage würde man einfach ein Programm schreiben, das alle `n` durchprobiert.

Da die Einrückungen fehlen, kann man zwischen keine `n` und alle `n` verschiedene Antworten für die erste Aufgabe geben. Da hier offensichtlich absichtlich Quatsch programmiert wurde, ist es auch nicht möglich, das zu raten.

Beim zweiten Code ist die Antwort einfach: das läuft entweder für immer oder es passiert nichts.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1012
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Egal in welches Forum man schaut, die Leute bekommen es einfach nicht auf die Kette Code-Tags zu verwenden.
Wieso ist das so?

Diese Beiträge klicke ich mittlerweile automatisch weg.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

DeaD_EyE hat geschrieben: Montag 27. September 2021, 17:58 Egal in welches Forum man schaut, die Leute bekommen es einfach nicht auf die Kette Code-Tags zu verwenden.
Wieso ist das so?
<rant>
Das Internet ist der Dienstelieferant. Die Leute in den Foren haben gefälligst zu antworten. Und zwar schnell. Und ausführlich. Und ohne Rückfragen.

Häufig korreliert ja auch die Qualität des Postings mit dem Willen, sich überhaupt mit dem Thema zu beschäftigen. Siehe das Startposting in diesem Thread: Keine saubere Formatierung, keine Beschreibung was versucht wurde um das Problem zu lösen. Keine Erklärung, welche Schwierigkeiten beim Lösungsversuch aufgetreten sind. Meine Einschätzung: Code bekommen, bestenfalls einmal laufen lassen, 5 Minuten draufgestarrt und jetzt hat das Netz gefälligst die Lösung zu liefern.

Dass man sich nicht selber mit dem Problem intensiver auseinandersetzt ist übel genug. Dass man dann aber mit einem hingerotzten Posting andere dazu auffordert seine Hausaufgaben zu machen, ist einfach unterste Schublade. Und das Schlimmste ist noch, dass ein Fragesteller dann typischerweise gar nicht einsieht, dass sein Auftreten von Ignoranz und Respektlosigkeit zeugt und dass er das vielleicht besser ändern sollte und stattdessen der Meinung ist, dass ich A... gefälligst die Klappe zu halten hätte.
</rant>

Entschuldigung fürs off-topic, aber ich bin gerade u.a. Stackoverflow-geschädigt und das musste mal raus.
Antworten