www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Uni-Sonstiges" - "Rekursiv definierte Funktion"
"Rekursiv definierte Funktion" < Sonstiges < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Uni-Sonstiges"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

"Rekursiv definierte Funktion": Verständnisprob. math. Zeichen
Status: (Frage) beantwortet Status 
Datum: 15:35 Di 03.11.2009
Autor: berschel

Aufgabe
[Dateianhang nicht öffentlich]

Hallo,
ich soll ein Programm schreiben das o.g. "Funktion" benutzt.
Das Zeichen habe ich noch nie zuvor gesehen (ist das nicht ein kyrillisches F oder sowas?) und Wikipedias Definition von diesem Zeichen bringt mich auch kein bisschen weiter.
Was ist denn damit gemeint?

Ich hoffe ihr könnt mir helfen.

Viele Grüße

Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
        
Bezug
"Rekursiv definierte Funktion": Antwort
Status: (Antwort) fertig Status 
Datum: 15:57 Di 03.11.2009
Autor: schachuzipus

Hallo Sandra,

> [Dateianhang nicht öffentlich]
>  Hallo,
>  ich soll ein Programm schreiben das o.g. "Funktion"
> benutzt.
>  Das Zeichen habe ich noch nie zuvor gesehen (ist das nicht
> ein kyrillisches F oder sowas?) ;-)

> und Wikipedias Definition
> von diesem Zeichen bringt mich auch kein bisschen weiter.
>  Was ist denn damit gemeint?

Das ist das griechische Phi (als Großbuchstabe), im Latexcode ist das ein /Phi [mm] $\Phi$; [/mm] schaue mal []dort rein, da ist das ganze Alphabet mal in einer Übersicht dargestellt.

Das [mm] $\Phi$ [/mm] ist lediglich ein Name bzw. eine Bezeichnung für die Funktion, wenn es dich sehr stört, ersetze es überall durch das "vertraute" f: $f(a,b)=...$

>  
> Ich hoffe ihr könnt mir helfen.
>  
> Viele Grüße

Gruß

schachuzipus


Bezug
        
Bezug
"Rekursiv definierte Funktion": Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:46 Mi 04.11.2009
Autor: berschel

Ich habe das jetzt mal so umgeschrieben:

(1) f (0, b) = b + 1
(2) f ((a + 1), 0) = f (a, 1)
(3) f ((a + 1), (b + 1)) = f (a, f((a + 1), b))

Aber irgendwie bringt mich das nicht weiter. Ich sehe auch keinen Zusammenhang zwischen den drei Gleichungen.
Die muss ich jetzt doch irgendwie verknüpfen, oder?

Das einzige, was mir da in den Sinn kommt, ist Gleichung (1) in Gleichung (3) einzufügen:
(3) f ((a+1), f(0, b)) = f (a, f((a + 1), b))

Wie mache ich denn jetzt weiter?
Würde mich über Tipps echt freuen.

Eure verzweifelte Studentin

Bezug
                
Bezug
"Rekursiv definierte Funktion": Antwort
Status: (Antwort) fertig Status 
Datum: 12:57 Mi 04.11.2009
Autor: Gonozal_IX

Hiho,

letztlich sieht es schlimmer aus, als es ist.
Du hast hier folgendes Problem:

Was ist denn bspw $f(2,5)$ ? Wie du feststellst, kannst du das nicht ausrechnen, weil es dafür keine direkte Berechnungsvorschrift gibt, aber du kannst es "runterbrechen" auf eine bekannte Form.

Ziel ist es natürlich, es auf die einzige Form zu bringen, wo ein "richtiges Ergebnis" rauskommt, nämlich $f(0,b)$, denn das ist nämlich $b+1$.

Dafür müssen wir also versuchen die erste Zahl auf 0 runterzubekommen und wie man erkennt, können wir bei dieser Form nur den 3. Schritt anwenden, da beim ersten Schritt ja die erste Zahl 0 ist, beim zweiten die Zweite Zahl 0.
Das ist hier nicht gegeben, also die dritte Form, die sieht wie folgt aus:

$f(a+1,b+1) = f(a,f(a+1,b))$

Für unseren Fall also:

$f(2,5) = f(1,f(2,4))$

Um nun weiterzumachen, müssten wir also erst $f(2,4)$ ausrechen.
Und da würden wir wieder von Vorne anfangen.

Du hast also 3 Schritte.

1.) Welche Form hat meine Eingabe
2.) Umformen und prüfen ob ich fertig bin
3.) Wenn nicht => bei 1. mit den neuen Werten anfangen oder fertig.

Und das sollst du nun Programmieren.
Ist gar nicht so schwer :-)

MFG,
Gono.

Bezug
                        
Bezug
"Rekursiv definierte Funktion": Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:15 Mi 04.11.2009
Autor: berschel

Ok also also den einen Schritt hab ich soweit glaub ich verstanden.
Wenn ich so weitermache erhalte ich:

[mm] f (2,5) = f (1, f (2,4)) [/mm]
[mm] f (2,4) = f (1, f (2,3)) [/mm]
[mm] f (2,3) = f (1, f (2,2)) [/mm]
[mm] f (2,2) = f (1, f (2,1)) [/mm]
[mm] f (2,1) = f (1, f (2,0)) [/mm]

Aber jetzt ist ja die zweite Zahl 0 und nicht die erste? Oder hab ich's doch falsch verstanden?

Bezug
                                
Bezug
"Rekursiv definierte Funktion": Antwort
Status: (Antwort) fertig Status 
Datum: 13:21 Mi 04.11.2009
Autor: Teufel

Hi!

Wenn du jetzt f(2,0) weiter zerkleinerst, wird irgendwann auch das a 0.
f(2,0)=f(1,1)
f(1,1)=f(0,1)
f(0,1)=2

Also ist f(2,0)=2, was du dann wieder zurück einsetzen kannst... anstrengende Angelegenheit, aber das zu programmieren ist viel einfacher als das zu Fuß zu rechnen.
Hast du schon mal rekursive Funktionen programmiert?

[anon] Teufel


Bezug
                                        
Bezug
"Rekursiv definierte Funktion": Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:34 Mi 04.11.2009
Autor: berschel

Habe soweit ich weiß noch nie eine rekursive Funktion programmiert, eventuell mal in der Schule (war auf nem TG mit Informatikprofil) aber dann weiß ichs nicht mehr). Weiß nur, dass die Funktion sich dann selbst aufrufen muss.

Aber naja, ich sollte vielleicht erstmal wissen, was die Funktion denn machen soll, bevor ich sie programmieren kann ;)

Mit welcher von den Formeln kann ich denn das a auch noch zerkleinern? Da blick ich jetzt leider nicht durch :(

Bezug
                                                
Bezug
"Rekursiv definierte Funktion": Antwort
Status: (Antwort) fertig Status 
Datum: 15:13 Mi 04.11.2009
Autor: Al-Chwarizmi


> Habe soweit ich weiß noch nie eine rekursive Funktion
> programmiert, eventuell mal in der Schule (war auf nem TG
> mit Informatikprofil) aber dann weiß ichs nicht mehr).
> Weiß nur, dass die Funktion sich dann selbst aufrufen
> muss.
>  
> Aber naja, ich sollte vielleicht erstmal wissen, was die
> Funktion denn machen soll, bevor ich sie programmieren kann

Es empfiehlt sich natürlich, zuerst mal mittels Papier
und Bleistift eine kleine Tabelle für f aufzustellen.

>  
> Mit welcher von den Formeln kann ich denn das a auch noch
> zerkleinern? Da blick ich jetzt leider nicht durch :(


      R1:    f(0,b)=b+1
      R2:    f(a+1,0)=f(a,1)
      R3:    f(a+1,b+1)=f(a,f(a+1,b))


Hallo Sandra,

Nennen wir die zwei Argumente der Funktion f
einmal x und y. Die stehen hier natürlich für
Zahlen aus [mm] \IN_0. [/mm] Nun seien zwei beliebige
derartige Werte für x und y gegeben. Wie erhalten
wir f(x,y) ? Jetzt sind verschiedene Fälle zu
unterscheiden:

1.)  x=0
     in diesem Fall sagt Regel R1, dass f(x,y)=f(0,y)=y+1

2.)  x>0 und y=0
     in diesem Fall sagt R2:   f(x,y)=f(x,0)=f(x-1,1)

3.)  x>0 und y>0
     jetzt kommt R3 zum Zug:  f(x,y)=f(x-1,f(x,y-1))

Ich kenne Ada nicht. Kurz skizziert könnte man aber
die rekursive Definition für f so fassen:

      [mm] f(x,y):=\begin{cases} y+1 & \mbox{falls } x=0 \\ f(x-1,1) & \mbox{falls } x>0\ \wedge\ y=0\\ f(x-1,f(x,y-1)) & \mbox{falls } x>0\ \wedge\ y>0 \end{cases} [/mm]

Der rekursive Aufruf nach diesem Rezept landet
zwangsläufig nach einer endlichen Anzahl von
Schritten bei Regel 1 und kann dann "Nägel mit
Köpfen" machen, also konkrete Zahlenwerte
berechnen.

Natürlich muss die so definierte Funktion für jedes
eingegebene Paar (x,y) von neuem die gesamte
Rechnerei durchführen. Sollte die Absicht sein,
die Funktion f zu tabellieren, würde sich wohl
ein anderer, weniger rechenintensiver Weg empfehlen,
bei welchem die schon berechneten Werte tabellarisch
gespeichert werden.


LG     Al-Chw.




Bezug
                                                        
Bezug
"Rekursiv definierte Funktion": Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:10 Mi 04.11.2009
Autor: berschel

Okay!
Mensch, ich bin das alles falsch angegangen. Ist ja wirklich harmloser als es aussieht!
Die Aufgabenstellung war so unklar formuliert und dazu dann noch die seltsam anmutenden Gleichungen... Ich wusste nicht, ob ich A und B vom Benutzer eingeben lassen bzw. ob oder was das Programm ausgeben muss.

Ich habe es soweit implementiert, jedoch verstehe ich eins noch nicht ganz.

Normalerweise hatte eine Funktion wie ich sie in der Schule kennen gelernt habe z.B. die Form f(x) = x².
Hier stehen aber in der Klammer zwei Werte. Wie ist das denn zu verstehen?
Das Programm gibt am Ende eine einzelne Zahl aus, ist das richtig so?

Viele Grüße

Bezug
                                                                
Bezug
"Rekursiv definierte Funktion": Antwort
Status: (Antwort) fertig Status 
Datum: 17:31 Mi 04.11.2009
Autor: Al-Chwarizmi


> Okay!
>  Mensch, ich bin das alles falsch angegangen. Ist ja
> wirklich harmloser als es aussieht!
>  Die Aufgabenstellung war so unklar formuliert und dazu
> dann noch die seltsam anmutenden Gleichungen... Ich wusste
> nicht, ob ich A und B vom Benutzer eingeben lassen bzw. ob
> oder was das Programm ausgeben muss.
>  
> Ich habe es soweit implementiert, jedoch verstehe ich eins
> noch nicht ganz.
>  
> Normalerweise hatte eine Funktion wie ich sie in der Schule
> kennen gelernt habe z.B. die Form f(x) = x².
> Hier stehen aber in der Klammer zwei Werte. Wie ist das
> denn zu verstehen?

Irgendwie etwas schade, dass man in der Schule nur
oder fast nur Funktionen mit einer Variablen benützt,
aber mit ein paar wichtigen Ausnahmen, die man dann
aber eben meist nicht "Funktionen", sondern "Opera-
tionen" nennt. Eigentlich sind die Rechenoperationen
wie Addition, Subtraktion etc. nichts anderes als
Funktionen mit zwei Variablen:

     [mm] f_1(x,y)=x+y [/mm]      Addition
     [mm] f_2(x,y)=x-y [/mm]      Subtraktion
     [mm] f_3(x,y)=x*y [/mm]       Multiplikation
     [mm] f_4(x,y)=x:y [/mm]       Division
     [mm] f_5(x,y)=x^y [/mm]        Potenzieren

Oder: die Formel für die Berechnung des Zylinder-
volumens stellt eine Funktion mit zwei Variablen
r und h dar:

    $\ [mm] V_{Zyl.}(r,h)\ [/mm] =\ [mm] \pi*r^2*h$ [/mm]

> Das Programm gibt am Ende eine einzelne Zahl aus, ist das
> richtig so?

Für ein gegebenes Zahlenpaar  [mm] $(x,y)\in\IN_0^{\,2}$: [/mm]   ja

Ein Beispiel:    $\ f(3,4)\ =\ 125$
(das war das höchste, was mein Pascalprogramm
gerade noch schaffte, bevor es Probleme mit der
Rekursionstiefe bekam)


LG     Al-Chw.


Bezug
                                                                        
Bezug
"Rekursiv definierte Funktion": Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:38 Mi 04.11.2009
Autor: berschel

Hab mich gerade lange gewundert, warum bei größeren Werten das Programm hängen bleibt... Tatsächlich geht es aber auch bei mir nicht weiter als bis (3,4)...

Vielen Dank an alle für die vielen Antworten!!!

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Uni-Sonstiges"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorhilfe.de