|
|
Zufallsmatrix mit Vorgegebenem Intervall, keine Zahl doppelt |
|
DasHuhn |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 22.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.10.2013, 18:14
Titel: Zufallsmatrix mit Vorgegebenem Intervall, keine Zahl doppelt
|
 |
|
 |
|
Hallo zusammen,
haben in der Uni jetzt mir Matlab angefangen und ich tu mich noch etwas schwer mit der Materie.
Wir haben jetzt die Aufgabe bekommen eine 3x3 Matrix zu erstellen,
die nur Zahlen von 0-8 erhalten soll.
Dabei sollen die Zahlen in dieser Matrix zufällig angeordnet sein und keine Zahl darf doppelt vorkommen.
Sinn und zweck dieser Übung ist es später diese Matrix durch verschiedene Rechen und Umstelloperationen in die Form
1 2 3
4 5 6
7 8 0
zu bringen. (ähnlich wie bei einem Slide-Puzzle)
Jetzt hab ich allerdings schon direkt am Anfang bei der Erzeugung dieser Matrix Probleme.
Ich bekomme es zwar hin über folgende Funktion eine Matrix mit den Zahlen von 1-9 zufällig angeordnet zu erzeugen aber nicht von 0-8.
mit der funktion
bekomme ich es zwar hin das der Zahlen von 0-8 nimmt, allerdings kommen dabei auch Zahlen doppelt vor.
wenn ich versuche die beiden Sachen zu kombinieren wie z.B.
bekomme ich die Fehlermeldung:
Error using randperm
Inputs must be nonnegative scalar integers.
ich weiß das randperm Zahlen von 1 -n zufällig anordnet.
wäre nett wenn mir jemand bei diesem Problem weiterhelfen könnte.
|
|
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 22.10.2013, 18:24
Titel:
|
 |
Zitat: |
Ich bekomme es zwar hin über folgende Funktion eine Matrix mit den Zahlen von 1-9 zufällig angeordnet zu erzeugen aber nicht von 0-8.
|
Ziehe einfach 1 ab:
|
|
|
DasHuhn |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 22.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.10.2013, 18:33
Titel:
|
 |
Danke für die schnelle Antwort.
Funktioniert jetzt.
Jetzt stellt sich mir die Frage wie man es am besten realisieren kann,
die Matrix nur durch Umstellen von Zahlen um die 0 herum, sie in die Form
1 2 3
4 5 6
7 8 0
zu bekommen.
Wie bei einem Slide-Puzzle soll die Null die Leerstelle symbolisieren und nur Zahlen um sie herum können/dürfen verschoben werden.
Das Problem ist, das ich noch nicht soweit in dem Programm eingearbeitet bin, dass ich weis was es da alles für Möglichkeiten gibt.
Bzw. ist die überhaupt möglich?
Oder würde es mehr sinn ergeben dafür eine vorgegebene Matrix zu nehmen?
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 23.10.2013, 21:05
Titel:
|
 |
Hallo
Zitat: |
Oder würde es mehr sinn ergeben dafür eine vorgegebene Matrix zu nehmen? |
Verstehe nicht, was damit meinst.
Zitat: |
Bzw. ist die überhaupt möglich? |
Ja das ist möglich. Logische Indizierung nutzen,
Nachbarn um der 0-Stelle suchen, dann kannst z.B in Brutforce Manier also in der WHILE Loop- Zahlen mit der Nullstelle solange mit zufälligen Nachbarn tauschen, bis das erwünschte Ergebnis eintritt.
Ansonsten musst da schon eine gewisse Logik rein, sonst kann Bruteforce ja ewig dauern.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|