a3 doc with flawed algo

This commit is contained in:
2022-02-28 21:08:32 +01:00
parent a9cf3d041a
commit 738fef4068

107
Aufgabe3-HexMax/doc.tex Normal file
View File

@ -0,0 +1,107 @@
\documentclass[a4paper,10pt,ngerman]{scrartcl}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,margin=2.5cm,footskip=0.5cm]{geometry}
% Die nächsten drei Felder bitte anpassen:
\newcommand{\Aufgabe}{Aufgabe 3: HexMax} % 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{minted}
\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}
% 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}
Durch ebenso oftes Hinlegen und Wegnehmen der Stäbchen erhält man eine Hex-Zahl,
die man auch mit Umlegen erreichen kann. Der Algorithmus kann also erstmal mehr
Stäbchen hinlegen wie wegnehmen oder umgekehrt, solange am Ende die Anzahl der
hingelegten Stäbchen gleich der weggenommenen Stäbchen ist.
Die größte Zahl erhält man, wenn man möglichst die vorderen Ziffern erhöht. Der
Algorithmus geht angefangen mit der ersten Ziffer jede Ziffer der Zahl durch.
Ausgenommen sind davon Ziffern, die schon geändert wurden.
Jede Ziffer wird, sofern sie nicht schon F ist, probiert auf F,E,... umzulegen.
Dabei wird gezählt wie viele Stäbchen weggenommenen und hingelegt werden müssen.
Überschreitet weder die Gesamtzahl der weggenommenen Stäbchen noch der
hingelegten Stäbchen die gegebene maximale Anzahl der Umlegungen, wird die
Ziffer entsprechend geändert. Ansonsten wird probiert die Ziffer zu der nächst
kleineren Ziffern zu ändern. Dies wird so lange wiederholt bis die Änderung der
Ziffer erfolgreich war oder bereits alle Ziffern, die größer sind, ausprobiert
wurden. Danach wird zu der nächsten Ziffer übergegangen.
Nachdem die vorderen Ziffern entsprechend erhöht wurden, kann es sein, dass noch
Stäbchen benötigt werden oder loszuwerden sind, damit gleich viele Stäbchen
weggenommenen wie hingelegt wurden. Da zuvor schon die Ziffern nach Möglichkeit
erhöht wurden, kann dies nur erreicht werden, indem Ziffern verringert werden.
Damit das nicht so stark ins Gewicht fällt, wird über die Ziffern von hinten
iteriert. Ziffer für Ziffer wird nun probiert die Ziffer so zu ändern, dass sich der Betrag der Differenz von der
Anzahl der hingelegten und der weggenommenen Stäbchen zu verringert. Es kann
auch eine vorherige Änderung der Ziffer noch geändert werden. Dabei darf
natürlich nicht die maximale Anzahl der Umlegungen überschritten werden.
Der Algorithmus wird so lange wiederholt bis die maximale Anzahl der Umlegungen
ausgeschöpft wurde. Dazu einmal das Beispiel aus der Aufgabenstellung: Die Zahl
D24 wird erst mit 3 weggenommenen und 2 hingelegten Stäbchen auf F24 erhöht.
Danach kann man allerdings das eine Stäbchen nicht bei den Ziffern 4 oder 2
loswerden, sodass die Zahl auf E24 geändert wird, da dort gleich viele Stäbchen
hingelegt wie weggenommenen wurden. Darauffolgend wird wieder probiert die Ziffern zu
erhöhen, wobei die erste Ziffer ausgelassen wird, sodass der Algorithmus
schließlich zur Lösung EE4 kommt.
8D5 F89
\section{Umsetzung}
\section{Beispiele}
\section{Quellcode}
Unwichtige Teile des Programms sollen hier nicht abgedruckt werden. Dieser Teil sollte nicht mehr als 23 Seiten umfassen, maximal 10.
\end{document}