Java-Programm mit 4D-array
Ich bin das erste Jahr informatik-student, und ich bin ganz neu hier. Ich habe Java zu lernen für die letzten drei und eine Hälfte Monate und C++ für sechs Monate vor. Meine Java-Kenntnisse beschränkt sich auf die Definition und Verwendung von eigenen Methoden, die absoluten Grundlagen der objektorientierten Programmierung wie die Verwendung von statischen Daten-member und Mitglied Sichtbarkeit.
Diesem Nachmittag, meine computer-Programmierung prof hat uns gelehrt, über die multi-dimensionale arrays in Java. Über die multi-dimensionale arrays werden einfach arrays von arrays und so weiter. Er erwähnt, dass in nominal -, Bildungs-Programmierung, arrays über 2 Dimensionen sind fast nie benutzt. Sogar 3D-arrays werden verwendet, nur dort, wo unbedingt erforderlich, wie die Durchführung von wissenschaftlichen Funktionen. Dies lässt neben null nutzen für 4D-arrays, wie Sie diese verwenden, zeigt, dass "bist du mit dem falschen Datentyp" in mein prof gesagt hat.
Ich würde jedoch gerne ein Programm schreiben, in denen der Einsatz eines 4D-array eines beliebigen Datentyps, primitiv oder sonst gerechtfertigt ist. Das Programm muss nicht so trivial, wie das drucken der Elemente des Arrays.
Ich habe keine Ahnung, wo zu beginnen, das ist, warum ich dieses posting hier. Ich möchte Ihre Vorschläge. Relevante problem-Anweisungen, algorithmen, bits und Stücke von code, sind ebenfalls willkommen.
Danke.
Edit: Vergaß zu erwähnen, ich habe absolut keine Ahnung über die Arbeit mit GUIs in Java, also bitte nicht post-Ideen, die zur Umsetzung von GUIs.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ideen:
- Matrix-Multiplikation, und es sind Anwendungen wie die Suche nach kürzesten Pfad im Graphen
- Lösung von Systemen von Gleichungen
- Kryptographie-viele cryptoprotocols darstellen Daten oder Schlüssel, oder Ihre internen Strukturen in form von Matrizen.
- Jeder Algorithmus auf Graphen dargestellt als Matrizen
Muss ich haben haben eine Art von Fixierung auf Matrizen, sorry 🙂
4D arrays eine offensichtliche Sache, die ich denken kann, ist die Darstellung der 3D-Umgebung, die änderung in der Zeit, so 4. dimension repräsentiert die Zeit-Skala. Oder jede Darstellung von 3D, die zusätzliche zugeordnete Eigenschaft platziert in der 4. dimension des Arrays.
Könnten Sie ein Sodoku-hypercube mit 4 Dimensionen und speichert die zahlen, die der Benutzer eingibt in eine 4dimensional int-array.
Nur um wieder an ihn,..dein prof Recht. Ich fürchte, ich könnte körperlich gewalttätig zu jedem, der ein 4D+ array in der Produktion von code.
Es ist irgendwie cool, um in der Lage zu gehen in mehr als 3 Dimensionen als ein Bildungs-übung, aber für echte Arbeit, es macht die Dinge Weg zu kompliziert, weil wir nicht wirklich viel verstehen von Strukturen mit mehr als 3 Dimensionen.
Dem Grund ist es schwer zu kommen mit einem praktischen nutzen für 4D+ arrays ist, weil es (fast) nichts kompliziert in der realen Welt zu modellieren.
Kann man sich in der Modellierung etwas wie ein tesseract , das ist (laienhaft ausgedrückt ) ein 4D-Würfel oder wie Victor schlägt vor, die Nutzung der 4. dimension Modell konstanter Zeit.
HTH
Einen könnte die Anwendung dynamische Programmierung auf eine Funktion, die nimmt 4 integer-Parameter
f(int x,int y,int z,int w)
. Zu vermeiden, fordern diese teure Funktion immer und immer wieder, Sie können speichern die Ergebnisse in ein 4D-arrayresults[x][y][z][w]=f(x,y,z,w);
.Nun müssen Sie nur noch finden, eine teure integer-Funktion mit stelligkeit 4, oh, und eine Notwendigkeit für die Berechnung ist es oft...
Gibt es viele Einsatzmöglichkeiten. Wie schon andere gesagt haben, können Sie Modell ein hypercube oder so, macht Gebrauch von einem hypercube sowie die Modellierung einer im Laufe der Zeit ändern. Es gibt jedoch viele andere mögliche Anwendungen.
Beispielsweise, einer der theoretischen simulation Modelle unseres Universums verwendet 11th dimensionalen Physik. Sie können ein Programm schreiben, das Modell, was diese davon ausgegangen, Physik Aussehen würde. Würde der Benutzer nur in der Lage sein zu sehen, einem 3-dimensionalen Raum, die definitiv Grenzen usability, aber in den 4-dimensionalen Koordinate handeln konnte, wie das ändern der Kanal, um die Benutzer ändern Ihre Perspektive. Wenn Sie einen 4-dimensionalen explosion kommt, zum Beispiel, möchten Sie vielleicht sogar ein 5. dimensionales array, so dass Sie Modell, was es sieht aus wie in jedem angeschlossenen 3-dimensionalen Raum wie sieht es in jedem Bild der Zeit.
Einen Schritt Weg von der wissenschaftlichen, denken Sie an ein MMORPG. Heute sind viele dieser Spiele verwendet "instanziert" - Positionen, das bedeutet, dass eine Kopie einer bestimmten zone eingerichtet, die ausschliesslich für die Nutzung durch eine bestimmte Gruppe von Spielern so zu verhindern, lag. Wenn dieses "instanzierte" - Konzept erhielt einen 4-dimensionalen Koordinate und es den Spielern ermöglicht, durch die Veränderung seiner position in Instanzen, könnte es tatsächlich ermöglichen, alle server Welten werden zusammengeführt, wobei den Spielern eine große Menge an Kontrolle über, wo Sie gehen und gleichzeitig Ihre Kosten senken.
Natürlich Ihre Frage wissen will über Ideen ohne Verwendung einer GUI. Das ist ein bisschen schwieriger, weil Sie arbeiten in einer 2D-Umgebung. Eine echte Anwendung würde sein Kalkül. Wir haben 3D-Grafik-Taschenrechner, aber für höhere Dimensionen, die Sie haben ziemlich viel zu tun mit der hand. Ein pogram, die darauf abzielt, zu lösen, um diese Berechnungen für Sie möglicherweise nicht in der Lage sein, um ordnungsgemäß die Informationen anzuzeigen, aber das kann man bestimmt berechnen. Auch, wenn hologaphic Schnittstellen als eine weit verbreitete Realität kann es möglich sein, stellen eine hypercube-Graphen in 3D machen, so ein Programm nützlich.
Könnten Sie in der Lage sein, einen text zu schreiben-basiertes board Spiel, wo Sie die position der Stücke wird dargestellt mit text. Sie können hinzufügen, Abmessungen und Spiel Regeln, Sie zu verwenden.
Die einfachste Idee, die ich geben konnte, Sie ist ein Zustand speichern system. Bei jedem Intervall das Programm in den Speicher kopiert und gespeichert in eine Datei. Es ist zu koordinieren ist es, die position in der Zeit. Auf Gesicht Wert, den Sie nicht brauchen kann, ein 4D-array, um diese zu bewältigen, aber nehmen wir an, das Programm, das Sie speichern Staaten verwendet ein 3D-array. Man kann es bis zur Darstellung jedes gespeicherten Zustand als eine position in der Zeit, die Sie nutzen können, und dann die änderung in der Zeit.
Ich bin mir nicht sicher, was genau Sie tun könnte, weil ich gerade angefangen darüber nachzudenken. Aber man könnte sicher auch ein 4D-array für irgendeine Art von grundlegenden Physik-simulation, wie die Modellierung eines Projektils Flug mit einigen wind-Werte, und was nicht. Dass gerade in den Sinn kam, weil der Begriff 4D bringt immer zu beachten, dass die "position" eines Objekts ist 4 Werte, mit der Zeit als 4..