Haskell - Tupel < Haskell < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Aufgabe | Ein rechteckiges Areal soll mit gleichgro¼en quadratischen Tafeln ausgelegt (parkettiert) werden. Allerdings
erschwert sich dieses Problem dadurch, dass die Tafeln an ihren Seiten mit unterschiedlichen Nuten ausgerüstet
sind. Zwei Tafeln können nur dann aneinander gelegt werden, falls die anstoßenden Seiten kompatible Nuten
haben. Die Frage ist, ob bei einer gegebenen Artenvielfalt von Tafeln eine Parkettierung möglich ist.
Implementieren Sie eine Haskell-Funktion parkettiere, die in Abhängigkeit von gegebenen Tafelarten feststellt,
ob in einem Areal einer gewissen Länge (ein Vielfaches der Kantenlänge jeder verfügbaren Tafel) eine gewisse
Anzahl von Tafeln, beginnend von links unten nach rechts oben, ausgelegt werden kann.
Folgende Typvorgaben sollen genutzt werden:
type Tafelart = (Int,Int,Int,Int)
type Tafelartliste = [Tafelart]
type Parkett = [Tafelartliste]
type Laenge = Int
type Anzahl = Int
parkettiere::(Tafelartliste,Laenge,Anzahl)->Parkett
Jede Tafel ist also als Quadrupel beschrieben, wobei die vier Zahlen in der entsprechenden Reihenfolge die Seiten
unten, links, oben, rechts angeben. Zwei Seiten haben genau dann kompatible Nuten, falls beide die gleiche Zahl
haben.
Die Tafelliste als Argument der Funktion parkettiere legt die vorhandenen Tafelarten fest. Von jeder Tafelart
stehen beliebig viele Tafeln zur VerfÄugung. Ein Parkett ist dann eine Liste von Tafelartlisten, die von unten
nach oben die Zuordnung der Tafeln zu den jeweiligen Parkettzeilen beschreibt.
--Standard-Testfall
parkettiere (ta,2,4) == (1,2,3,4),(1,4,3,2)],[(3,1,2,4),(3,4,2,1)
ta=[(1,2,3,4),(3,1,2,4),(1,4,3,2),(3,4,2,1)]
type Tafelart = (Int,Int,Int,Int)
type Tafelartliste = [Tafelart]
type Parkett = [Tafelartliste]
type Laenge = Int
type Anzahl = Int
parkettiere::(Tafelartliste,Laenge,Anzahl)->Parkett |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo,....
Ich wollt fragen ob mir einer die Aufgabe erklähren könnte und mir gegebenenfalls beim Anfang helfen könnte?
Weiß nämlich nicht, was ich jetzt machen soll, aber könnte es so was ähnliches sein wie beim 8-Damen-Problem, nur das man diesmal die Föälle rausgibt, wo die Tische passen???
Bitte um Antwort.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:55 Mo 03.12.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|