www.vorkurse.de
Ein Projekt von vorhilfe.de
Die Online-Kurse der Vorhilfe

E-Learning leicht gemacht.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Forenbaum
^ Forenbaum
Status Mathe-Vorkurse
  Status Organisatorisches
  Status Schule
    Status Wiederholung Algebra
    Status Einführung Analysis
    Status Einführung Analytisc
    Status VK 21: Mathematik 6.
    Status VK 37: Kurvendiskussionen
    Status VK Abivorbereitungen
  Status Universität
    Status Lerngruppe LinAlg
    Status VK 13 Analysis I FH
    Status Algebra 2006
    Status VK 22: Algebra 2007
    Status GruMiHH 06
    Status VK 58: Algebra 1
    Status VK 59: Lineare Algebra
    Status VK 60: Analysis
    Status Wahrscheinlichkeitst

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 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 ^
www.vorkurse.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]