Was bedeutet F : ℤ -> ℕ bei Rekursion?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

F(.) soll auf den ganzen Zahlen definiert sein. Die Funktionsvorschrift ist allerdings unvollständig. Vermutlich sollte es "(n<=0)" statt ("n=0)" heissen. Dann ist F auf den negativen Zahlen und der Null gleich Null und die Rekursion bricht nach (aufgerundet) n/2 Schritten ab.

Ich würde sagen, dass es für den Werte und Definitionsbereich steht und somit den Intervall bzw. hier den Zahlenbereich definiert. Ganzzahlen zu Natürlichen Zahlen.

Woher ich das weiß:eigene Erfahrung

Genau, F bekommt eine ganze Zahl und macht daraus eine natürliche Zahl.

Edit: Wobei mir gerade auffällt dass F für n < 0 gar nicht definiert ist. Also ist diese Aufgabenstellung fehlerhaft.


PsySkill 
Beitragsersteller
 11.01.2024, 23:25

Siehe Aufgabe 1.

Aber eine natürliche Zahl kann doch gar nicht n < 0 sein?!

0
aperfect10  11.01.2024, 23:28
@PsySkill

Ja. Aber da steht dass für n ganze Zahlen zulässig sind, und die können sehr wohl kleiner als Null sein.

0
PsySkill 
Beitragsersteller
 11.01.2024, 23:37
@aperfect10

Ok, n ist also Element der ganzen zahlen. Warum ist dann da ein Pfeil -> N mit den natürlichen Zahlen

0
aperfect10  11.01.2024, 23:41
@PsySkill

F: Z -> N bedeutet: "F ist eine Funktion, die eine ganze Zahl auf eine natürliche Zahl abbildet". Das heißt in F wird eine ganze Zahl eingesetzt, und eine natürliche Zahl daraus berechnet.

1
aperfect10  11.01.2024, 23:45
@aperfect10

Aber wie gesagt, die Definition darunter passt dazu nicht. Es ist nicht angegeben wie negative n verarbeitet werden.

0
PsySkill 
Beitragsersteller
 11.01.2024, 23:51
@aperfect10

Ja, die erste Aufgabe auf dem Foto greift doch genau dieses Problem auf oder?

0
aperfect10  11.01.2024, 23:55
@PsySkill

Ja, ich fürchte auch dass das damit gemeint ist. Der Begriff "terminieren" ist hier völlig falsch. Diese Funktion bekommt man nicht mal zum laufen.

Wenn Du F, so wie sie da steht, in Python oder Java hinschreibst, wird der Compiler oder Interpreter einen Fehler ausgeben, da dort eben der Fall der negativen Zahlen fehlt.

Das hat nichts mit terminieren zu tun, die Funktion ist einfach nicht wohldefiniert, und daraus bekommt man auch kein korrektes Computerprogramm.

0
PsySkill 
Beitragsersteller
 12.01.2024, 00:16
@aperfect10

Also müsste es F: N->N oder F:N->G sein?

0
aperfect10  12.01.2024, 00:20
@PsySkill

Ich hab jetzt nicht so genau drauf geschaut, aber es dürften eigentlich nur positive, gerade Zahlen zulässig sein, also F: {0, 2, 4, 6, ...} -> N. Denn mit ungeraden Zahlen kommt man beim tiefsten Aufruf immer zu F(-1), und das ist wieder nicht definiert. Aber ich kann es mir morgen nochmal genauer ansehen.

0
PsySkill 
Beitragsersteller
 12.01.2024, 00:36
@aperfect10

Ja kein Ding, ich reche das auch gleich nochmal mit paar werten selber nach

0
PsySkill 
Beitragsersteller
 12.01.2024, 00:48
@aperfect10

Also mein Ergebnis. Du hast Recht. Die Funktion berechnet die Hälfte von Natürlichen Geraden Zahlen. Alles andere führt zu Fehlern

1