120 lines
4.3 KiB
TeX
120 lines
4.3 KiB
TeX
\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}
|