\documentclass[a4paper,10pt,ngerman]{scrartcl} \usepackage{babel} \usepackage[T1]{fontenc} \usepackage[utf8x]{inputenc} \usepackage[a4paper,margin=2.5cm,footskip=0.5cm]{geometry} % Die nächsten drei Felder bitte anpassen: \newcommand{\Aufgabe}{Aufgabe 2: Rechenrätsel} % Aufgabennummer und Aufgabennamen angeben \newcommand{\TeilnahmeId}{60813} % Teilnahme-ID angeben \newcommand{\Name}{Marcel Zinkel} % Name des Bearbeiter / der Bearbeiterin dieser Aufgabe angeben % Kopf- und Fußzeilen \usepackage{scrlayer-scrpage, lastpage} \setkomafont{pageheadfoot}{\large\textrm} \lohead{\Aufgabe} \rohead{Teilnahme-ID: \TeilnahmeId} \cfoot*{\thepage{}/\pageref{LastPage}} % Position des Titels \usepackage{titling} \setlength{\droptitle}{-1.0cm} % Für mathematische Befehle und Symbole \usepackage{amsmath} \usepackage{amssymb} % Für Bilder \usepackage{graphicx} % Für Algorithmen \usepackage{algpseudocode} % Für Quelltext \usepackage{listings} \usepackage{color} \definecolor{mygreen}{rgb}{0,0.6,0} \definecolor{mygray}{rgb}{0.5,0.5,0.5} \definecolor{mymauve}{rgb}{0.58,0,0.82} \lstset{ keywordstyle=\color{blue},commentstyle=\color{mygreen}, stringstyle=\color{mymauve},rulecolor=\color{black}, basicstyle=\footnotesize\ttfamily,numberstyle=\tiny\color{mygray}, captionpos=b, % sets the caption-position to bottom keepspaces=true, % keeps spaces in text numbers=left, numbersep=5pt, showspaces=false,showstringspaces=true, showtabs=false, stepnumber=2, tabsize=2, title=\lstname } \lstdefinelanguage{JavaScript}{ % JavaScript ist als einzige Sprache noch nicht vordefiniert keywords={break, case, catch, continue, debugger, default, delete, do, else, finally, for, function, if, in, instanceof, new, return, switch, this, throw, try, typeof, var, void, while, with}, morecomment=[l]{//}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]", sensitive=true } % Anführungszeichen \usepackage{csquotes} % Diese beiden Pakete müssen zuletzt geladen werden %\usepackage{hyperref} % Anklickbare Links im Dokument \usepackage{cleveref} % Daten für die Titelseite \title{\textbf{\Huge\Aufgabe}} \author{\LARGE Teilnahme-ID: \LARGE \TeilnahmeId \\\\ \LARGE Bearbeiter/-in dieser Aufgabe: \\ \LARGE \Name\\\\} \date{\LARGE\today} \begin{document} \maketitle \tableofcontents \vspace{0.5cm} \section{Lösungsidee} Die Aufgabenstellung gibt nicht vor wie ein Rätsel, das \enquote{interessant und unterschiedlich} ist, zu sein hat. Damit das Rätsel interessant ist habe ich mir folgende Regeln überlegt: \begin{enumerate} \item Bei $n$ Operatoren muss für $m_i$, die Anzahl, mit der jeder der vier Operatoren vorkommt, gelten: \begin{align} \frac{n}{10} - 1 < m_i \leq \frac{n}{3} + 1 \end{align} \item Bei $n$ Ziffern muss für $m_i$, die Anzahl, mit der jede der neun Ziffern vorkommt, gelten: \begin{align} \frac{n}{16} - 1 < m_i \leq \frac{n}{4} + 1 \end{align} \end{enumerate} Der Beweis, ob ein Rechenrätsel eindeutig lösbar ist, ist ein Entscheidungsproblem mit NP-Schwere. Eine Lösung ist die Ziffern zufällig zu wählen und alle möglichen Kombinationen von Operatoren auszuprobieren. Kommt ein Ergebnis nur einmal vor, wurde ein eindeutiges Rätsel gefunden, was in der Regel der Fall sein sollte. Solch eine Brute-Force Operation dauert allerdings bei viele Operatoren exponentiell länger. Die Anzahl der Möglichkeiten $|\Omega|$ kann in Abhängigkeit von der Operatorenanzahl $n$ berechnet werden: $|\Omega|=4^{n}$. Das Programm sollte Rätsel mit mindestens 15 Operatoren erstellen können, da dies in der Aufgabenstellung als Richtwert angegeben wird. Für $n=15$ gilt $|\Omega|=4^{15}=1073741824\approx10^{6}$. So viele Möglichkeiten können noch mit einer guten Laufzeit berechnet werden. \section{Umsetzung} Hier wird kurz erläutert, wie die Lösungsidee im Programm tatsächlich umgesetzt wurde. Hier können auch Implementierungsdetails erwähnt werden. \section{Beispiele} Genügend Beispiele einbinden! Die Beispiele von der BwInf-Webseite sollten hier diskutiert werden, aber auch eigene Beispiele sind sehr gut – besonders wenn sie Spezialfälle abdecken. Aber bitte nicht 30 Seiten Programmausgabe hier einfügen! \section{Quellcode} Unwichtige Teile des Programms sollen hier nicht abgedruckt werden. Dieser Teil sollte nicht mehr als 2–3 Seiten umfassen, maximal 10. \end{document}