a3 doc with flawed algo
This commit is contained in:
107
Aufgabe3-HexMax/doc.tex
Normal file
107
Aufgabe3-HexMax/doc.tex
Normal 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 2–3 Seiten umfassen, maximal 10.
|
||||||
|
|
||||||
|
\end{document}
|
||||||
Reference in New Issue
Block a user