\documentclass{bschlangaul-aufgabe} \bLadePakete{mathe,java} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 4}, Thematik = {Binomialkoeffizient}, Referenz = 46115-2014-F.T2-A4, RelativerPfad = Examen/46115/2014/03/Thema-2/Aufgabe-4.tex, ZitatSchluessel = examen:46115:2014:03, ZitatBeschreibung = {Thema 2 Aufgabe 4}, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Rekursion, Implementierung in Java, Iterative Realisation}, EinzelpruefungsNr = 46115, Jahr = 2014, Monat = 03, ThemaNr = 2, AufgabeNr = 4, } \section{Aufgabe 4 \index{Rekursion} \footcite[Thema 2 Aufgabe 4]{examen:46115:2014:03} } Für Binomialkoeffizienten $\binom{n}{k}$ gelten neben den grundlegenden Beziehungen $\binom{n}{0} = 1$ und $\binom{n}{n} = 1$ auch folgende Formeln: \begin{bExkurs}[Binomialkoeffizient] Der Binomialkoeffizient ist eine mathematische Funktion, mit der sich eine der Grundaufgaben der Kombinatorik lösen lässt. Er gibt an, auf wie viele verschiedene Arten man $k$ bestimmte Objekte aus einer Menge von $n$ verschiedenen Objekten auswählen kann (ohne Zurücklegen, ohne Beachtung der Reihenfolge). Der Binomialkoeffizient ist also die Anzahl der $k$-elementigen Teilmengen einer $n$-elementigen Menge. \bFussnoteUrl{https://de.wikipedia.org/wiki/Binomialkoeffizient} \end{bExkurs} \begin{description} \item[A] $ \binom{n+1}{k} = \binom{n}{k-1} + \binom{n}{k} $ \item[B] $ \binom{n}{k} = \binom{n-1}{k-1} \cdot \frac{n}{k} $ \end{description} \begin{enumerate} %% % (a) %% \item Implementieren\index{Implementierung in Java} Sie unter Verwendung von Beziehung (A) eine rekursive Methode \bJavaCode{binRek(n, k)} zur Berechnung des Binomialkoeffizienten in einer objektorientierten Programmiersprache oder entsprechendem Pseudocode! \footcite[(entnommen aus Algorithmen und Datenstrukturen, Übungsblatt 2, Universität Würzburg), Aufgabe 6]{aud:pu:7} \begin{bAntwort} Zuerst verwandeln wir die Beziehung (A) geringfügig um, indem wir $n$ durch $n-1$ ersetzen: $ \binom{n}{k} = \binom{n-1}{k-1} + \binom{n-1}{k} $ \bJavaExamen[firstline=18,lastline=24]{46115}{2014}{03}{Binomialkoeffizient} \end{bAntwort} %% % (b) %% \item Implementieren Sie unter Verwendung von Beziehung (B) eine iterative Methode\index{Iterative Realisation} \bJavaCode{binIt(n, k)} zur Berechnung des Binomialkoeffizienten in einer objektorientierten Programmiersprache oder entsprechendem Pseudocode! \begin{bAntwort} \bJavaExamen[firstline=35,lastline=47]{46115}{2014}{03}{Binomialkoeffizient} \end{bAntwort} %% % (c) %% \item Geben Sie die Laufzeitkomplexität der Methoden \bJavaCode{binRek(n, k)} und \bJavaCode{binIt(n, k)} aus den vorhergehenden beiden Teilaufgaben in O-Notation an! \end{enumerate} \bPseudoUeberschrift{Komplette Java-Klasse} \bJavaExamen{46115}{2014}{03}{Binomialkoeffizient} \bPseudoUeberschrift{Test} \bJavaTestDatei{examen/examen_46115/jahr_2014/fruehjahr/BinomialkoeffizientTest} \end{document}