www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Algorithmen und Datenstrukturen" - Komplexität von Algos
Komplexität von Algos < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Komplexität von Algos: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:46 Fr 09.01.2009
Autor: Phecda

Hi
hab ne aufgabe wo ich nicht mal ansatzweise verstehe was ich machen soll [mm] =\ [/mm]

gegeben ist die rek fkt f:

int f(int a,int b){
    if (a >= b) {
       return g(a);
    } else {
        return f(a,b-1) + f(a+1,b);
    }
}

die frage ist:
berechnen sie die algorithmische komplexität der funktion f. dabei sei n = b-a der komplexitätsparameter.
Überlegen sie eine formel für T(n), die anzahl der additionen bei der berechnung von f(a,b) wobei n = b-a. Dieser aufwand ist abhängig von T(g), der anzahl der additionen in der berechnung von g. T(g) sei dabei unabhängig vom eingabeparameter von g, also eine konstante.

kann mir jmd erklären was ich machen soll?
hab schon 2 stunden skripte gelesen aber blick einfach nicht durch... sry
danke :)
lg    

        
Bezug
Komplexität von Algos: Antwort
Status: (Antwort) fertig Status 
Datum: 09:43 Mo 12.01.2009
Autor: bazzzty


> Hi
>  hab ne aufgabe wo ich nicht mal ansatzweise verstehe was
> ich machen soll
>  
> gegeben ist die rek fkt f:
>  
> int f(int a,int b){
>      if (a >= b) {
>         return g(a);
>      } else {
>          return f(a,b-1) + f(a+1,b);
>      }
>  }
>  
> die frage ist:
>  berechnen sie die algorithmische komplexität der funktion
> f. dabei sei n = b-a der komplexitätsparameter.
>  Überlegen sie eine formel für T(n), die anzahl der
> additionen bei der berechnung von f(a,b) wobei n = b-a.
> Dieser aufwand ist abhängig von T(g), der anzahl der
> additionen in der berechnung von g. T(g) sei dabei
> unabhängig vom eingabeparameter von g, also eine
> konstante.
>  
> kann mir jmd erklären was ich machen soll?
>  hab schon 2 stunden skripte gelesen aber blick einfach
> nicht durch... sry

Dass spricht ja nur für Dich, dass Du schon Skripte gelesen hast, kein Grund, sich zu entschuldigen.

Ich verstehe die Aufgabe so:

Wenn man die Funktion mit Parametern $a,b$ aufruft, dann kann man bei der Berechnung die Additionen (Subtraktionen zählen als Additionen) zählen und die als $T(a,b)$ bezeichnen. Das entspricht der Laufzeit, wenn man annimmt, dass nur Additionen Zeit kosten.

Einen wichtigen Schritt hat man schon mit der Aufgabe vorweggenommen: $T(a,b)$ hängt nicht wirklich von beiden Parametern ab, sondern ist nur von der Differenz abhängig. Es reicht also, nur $T(n)$ zu betrachten.

Die Laufzeit kann man dann auch wieder rekursiv aufschreiben:

[mm]T(n)=\begin{cases}c\cdot T(n-1)&:n>0\\ T(g)&:n\leq 0\end{cases}[/mm]

Das $c$ kannst Du Dir selbst überlegen, denke ich!
Man kann das dann auch geschlossen darstellen; ich weiß aber nicht, ob das gefragt ist.

>  danke :)
>  lg    


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]