Informatik Komplexitätsfunktion?
for i := 0; i < len(n); i++ { // O(n)
for j := 0; j < len(n); j++ { // O(n)
if x >= 30 { // O(1)
for k := 0; k < len(n); k++ { // O(n)
value = value + 10 // O(1)
}
} else {
value = value + 2 // O(1)
}
}
}
ich hab den code und soll die Komplexitätsfunktion angeben ansich komm ich klar nur hab ein ein problem bzw ich stimme nicht mit chat gpt ein er sagt nähmlich=
O(n)(O(n)(O(1)+O(n)O(1)+O(1)))+O(1)
ich verstehe aber das erste + net ich hätte jetzt mal gesagt
also: O(n)(O(n)(O(1)*(O(n)O(1))+O(1)))+O(1)
2 Antworten
Wenn ich nicht ganz daneben liege ist bei beiden Ergebnissen die Komplexität O(n³) (+ Konstanten). Daher sehe ich nicht wirklich das Problem.
das erste O(1) ist der Vergleich, der in deiner Darstellung nicht vor kommt.
O(n)(O(n)(O(1)+O(n)O(1)+O(1)))+O(1) du meinsz das markierte richtig? wenn ja okay in ordnung ich verstehe nur das darauffolgende plus nicht . Wieso nicht mal ? Das ist mein einziges Problem was ich net blick
Aus dem selben Grund warum bei dir auch ein + O(1) am Ende der Klammer steht. Die Vergleichsoperation ist nicht abhängig von der innersten O(n) Schleife.
Ich habe mir nicht die Mühe gemacht, die Lösungen zu überprüfen aber Deine Code-Kommentare sehen plausibel aus. ChatGPT kann das alles nicht. Es synthetisiert nur Text, mehr nicht. Hätte ChatGPT hier recht, wäre das reiner Zufall. Du hast die viel größere Chance, richtig zu liegen.
Tatsächlich ist Codeanalyse dieser Art (genau wie Codegeneration) eine der Hauptanwendungen von ChatGPT. Da kann ChatGPT auch mehr als nur Text synthetisieren.
die kommentare sind von chatgpt und sie sind richtig soweit blick ich des selber ,mir geht es nur um die aufstellung der funktionsgleichung das ,dass ding O(n hoxh3) ist seh ich auf den ersten blick aber ich muss halt sowas auch rechnerisch zeigen können
ja das sehe ich auch aber mein prof will das wie ich unten geschrieben habe ,er will die koplette funkion aufgeschrieben haben,fragt mich nichr wieso ich muss aber können für die klausur