Files
bwinf40-runde2/Aufgabe2-Rechenrätsel/doc.tex
2022-02-05 19:00:27 +01:00

120 lines
4.3 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\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 23 Seiten umfassen, maximal 10.
\end{document}