Hi, kennt jemand das Chainsaw Massacre? also das finden der größtmöglichen, zusammenhängenden Fläche in einem Waldstück? Muß ich jetz für die Uni Programmieren, weiß aber nicht so wirklich den Ansatz, außer dass ich das mit einem zweidimensionalen feld machen will. Vielleicht kann mir ja jemand weiterhelfen.
also das finden der größtmöglichen, zusammenhängenden Fläche in einem Waldstück? Muß ich jetz für die Uni Programmieren, weiß aber nicht so wirklich den Ansatz, außer dass ich das mit einem zweidimensionalen feld machen will. Vielleicht kann mir ja jemand weiterhelfen.
ein bisschen wenig information um dir einen ansatz zu geben... meinst du mit dem 2d-array das diesen den wald repästentieren soll? wenn ja soll jedes pixel bei 1 nen baum (oder mehrere) sein oder bei 0 nicht oder was hast du dir da vorgstellt... ist ziemlich ungenau deine aufgabenbeschreibung um dir nen ansatz geben zu können -- ...fleißig wie zwei Weißbrote
es soll die breite und länge einer waldstücks eingebeben werden, und die koordinaten von beliebig vielen bäumen auf dieser fläche. und dann soll das programm die größtmögliche fläche ausgeben.
tja, der algo insgesamt ist das problem. die gesuchte fläche soll ja auch noch recheckig sein. und so eine fläche zu finden, bei der es mehrere tausend "pixel" mit bäumen gibt. ist recht schwer. man müßte zeile für zeile durchgehen bis eine frei fläche kommt und ab da prüfen wie groß die größte fläche ab da währe
ein kleines Beispiel:
Code:
1 2345678910 ### ### ## # # # # #
# # # # # # # # #
Also währe hier in der zweiten Zeile an Stelle 2 eine freie Fläche. Dann müßte das prog in alle richtungen prüfen wie wie weit es bis zum nächsten baum ist. an dieser stelle ja nicht das problem. aber in der zweiten zeile an stelle 4 ist das schon schwieriger herauszufinden bis wohin eine rechtekige fläche möglcih ist.Dieser Post wurde am 15.01.2005 um 14:35 Uhr von FloSoft editiert.
also da du keine anforderungen an den algorithmus bezüglich performance hast kannst du da einfach ganz stupide rangehen und dir z.b. eine funktion schreiben die dir die grösste fläche zurückliefert die von einem punkt aufgespannt wird dessen ecke links oben du übergibst...
dann rufst du die funktion einfach für jedes pixel einmal in einer schleife auf und fertig ist die sache... (ist zwar so nicht besonders performant aber das war ja auch nicht gefragt...) -- ...fleißig wie zwei WeißbroteDieser Post wurde am 15.01.2005 um 17:53 Uhr von Windalf editiert.