Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mathematisches Problem, ges.: Anzahl Wege über ein Schachbrett

Frage Entwicklung

Mitglied: Garrarufa

Garrarufa (Level 1) - Jetzt verbinden

03.10.2013 um 15:13 Uhr, 1864 Aufrufe, 5 Kommentare

Hallo,

warscheinlich ist das nicht gerade das richtige Forum für solche Fragen, aber bevor ich mich wieder woanders registrieren muss, probiere ich es trotzdem hier.
Ich schreibe im Moment eine Android App, bei der ein beliebig großes 2-dimensionales Feld aus Buttons angezeigt wird.
Man soll auf 2 verschiedene Buttons klicken und dann wird ein zufälliger Weg dazwischen ausgerechnet und eingefärbt.
Bei größeren Feldern dauert das ziemlich lange und ich brauche eine Anzeige, die eine Schätzung abgibt, wie lange die Suche voraussichtlich noch dauern wird.
Dazu müsste ich ausrechnen, wie viele mögliche Wege es von meinem Startpunkt zu jedem beliebigen anderen Punkt auf dem Feld gibt, da ich im schlimmsten Fall alle diese Möglichkeiten durchprobiere.
Dabei ist zu beachten, dass ich mich von jedem Punkt nur in vertikaler oder horizontaler Richtung bewegen kann, also nicht schräg.
Wenn mir dazu jemand eine Formel sagen könnte, wäre ich schon mal glücklich.
Um es ganz genau zu machen, gibt es aber noch eine weitere Einschränkung.
Zwei Wegstücke verlaufen niemals parallel direkt nebeneinander. D.h. zwischen zwei Wegabschnitten ist immer mindestens eine freie Reihe Buttons. Zwei Wegstücke können sich nur in einem Fall berühren, nämlich wenn sich zwei Ecken schräg gegenüber liegen. Diese berühren sich dann in genau einem Punkt.
Ich hoffe das war verständlich, wenn nicht, bitte fragen.
Hoffentlich kann mir jemand helfen!

Grüße
Garrarufa
Mitglied: Bitboy
03.10.2013 um 15:39 Uhr
Hi,

so wie ich es verstanden habe, hast du da "unmögliches" vor. Wenn der Weg komplett zufällig ist, gibt es da nichts zu schätzen. Es könnte der kürzeste oder auch der längst mögliche Weg sein der da am Ende bei rauskommt. Nur ausgehend von den 2 gewählten Punkten kann man aber nichts sagen.

Sehr stark vereinfacht könntest du die Zahl der schon besuchten Felder durch die gesamtzahl der Felder Teilen und das Ergebnis in Prozent angeben. Der Anwender sieht dann wieviel Spielfläche schon abgelaufen wurde.

Mathegenies können bestimmt noch anhand der Reglen die Zahl der noch möglichen Felder berechnen und somit die Anzeige verfeiernen, aber das übersteigt mein können ;)
Bitte warten ..
Mitglied: Garrarufa
03.10.2013 um 16:05 Uhr
Mir ist klar, dass ich nicht anzeigen kann, wie lange es noch dauert, bis die Berechnung fertig ist.
Was ich anzeigen möchte, ist die prozentuale Anzahl der bereits probierten Wege, gemessen an der Anzahl der möglichen Wege. Kann natürlich sein, dass schon nach 1% ein Weg gefunden wurde. Die Anzeige zeigt nur die maximale Dauer an.
Bitte warten ..
Mitglied: Dirmhirn
03.10.2013 um 16:49 Uhr
HI!

das kannst du(man) vll über Graphen Theorie lösen. Alle Nachbarknoten von markierten Knoten dürfen nicht mehr besucht werden, so kannst du einmal die überhaupt noch möglichen Knoten abschätzen. Hinzu kommt dann, wenn das Feld zb schon mal geteilt ist - dann kannst du die eine Hälfte auch nicht mehr besuchen (falls sich die Wege nicht kreuzen dürfen).

Im Bereich der Mustererkennung kannst du dich auch umsehen - Anzahl der Pixel/nicht markierten Knoten - dafür gibt es Algorithmen.
kA ob die dann nicht länger brauchen als der Rest... aber ja...

was ist wenn du einfach das Verhältnis der restlichen Knoten zu den bereits markierten nimmst?

sg Dirm
Bitte warten ..
Mitglied: Lochkartenstanzer
03.10.2013, aktualisiert um 17:44 Uhr
Moin,

Du kannst die maximale Anzahl de Wege nach oben abschätzen:

Durch die vorgabe der nachbarschaft kannst Du effektiv ca. nur maximal die hälfte aller felder besuchen. wenn man die Sonderfälle an den Rändern des feldes wegläßt, hat Du bei jedem Feld ca. 3 mögliche variantionen "weiterzugehen", rechts links gerade. Damit ist eine obere Grenze 3^(n/2) mit n als Anzahl der "buttons" auf dem Feld.

lks
Bitte warten ..
Mitglied: Garrarufa
15.10.2013 um 16:32 Uhr
Danke für eure Antworten, ich habe mir die Zeit genommen das Problem nochmal zu überdenken und bin auf einen einfacheren Algorithmus gekommen, der erstens schneller zum Ziel kommt und zweitens einfacher abzuschätzen ist.
Idee: Alle Felder auf dem Schachbrett in zufälliger Reihenfolge füllen, bis nur noch ein Weg vom Start- zum Endpunkt übrig bleibt.
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Multimedia & Zubehör
BENQ Beamer Fernbedingung Frequenz Problem (2)

Frage von xbast1x zum Thema Multimedia & Zubehör ...

Windows Server
Google Chrome Web Store Problem auf Terminal Farm

Frage von dakoerry zum Thema Windows Server ...

C und C++
gelöst Anzahl der Buchstaben in einem String Element Array C++ (3)

Frage von Protected zum Thema C und C ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...