|
Verena |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.04.2010, 13:01
Titel: binäre Zufallszahlen
|
 |
Hallo ihr,
hab absolut keine Ahnung von matlab und muss eine zufällige Zahlenreihe mit 0 und 1 generieren, also: 1,0,0,1,0,1,1,0,1,0....
Habe schon herausgefunden, dass es auf folgende Weise funktioniert:
Zahlenreihe=round(rand(1,20))
Das Problem ist, dass sich jede Zahl höchstens 2mal wiederholen darf. Da ich noch nie mit matlab gearbeitet habe, weiß ich nicht, wie man mit if statements arbeitet und ob das hier überhaupt nötig ist. Wahrscheinlich gibts ne ganz einfache Lösung.
LG
Verena
|
|
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.04.2010, 13:05
Titel:
|
 |
sorry, mir ist noch aufgefallen, dass es mit der angegebenen Funktion nicht funktioniert, da auch die anzahl der einsen und nullen gleich sein muss. weiß da jemand was?
|
|
|
Phate |

Forum-Guru
|
 |
Beiträge: 283
|
 |
|
 |
Anmeldedatum: 09.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2008b
|
 |
|
|
 |
|
Verfasst am: 15.04.2010, 16:57
Titel:
|
 |
Hi,
Ich werde leider aus deiner Fragestellung nicht ganz schlau um dir weiter helfen zu können. Wenn sich jede Zahl nur 2 mal wiederholen darf und das ganze Binär sein soll dann gibte s nicht viele Möglichkeiten vorallem nicht wenn die Anzahl von Nullen und Einsen gleich sein soll.
Meinst du vl dass nie mehr wie 2 gleiche Zahlen hintereinander im Vektor stehen dürfen?
Grüße
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.04.2010, 17:45
Titel:
|
 |
ganz genau!
sorry, aber ich kann nicht programmieren, weshalb ich wohl auch Schwierigkeiten habe, mich exakt und mit den richtigen Termini auszudrücken.
Also der Vektor soll am Ende so aussehen:
0100110100110101001011010....
die gleiche Anzahl an Nullen und Einsen, sie dürfen sich allerdings nicht mehr als 2mal hintereinander wiederholen.
|
|
|
Jaspa1984 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.04.2010, 11:01
Titel:
|
 |
Hallo,
folgender Code müsste eigentlich funktionieren:
Zunächst wird dein gewünschter Vektor mit Nullen initialisiert (N bitte durch deine gewünschte Länge ersetzen). Anschließend werden die ersten beiden Bit des Vektors zufällig mit 1en und 0en beschrieben. Für die restlichen Bits des Vektors wird in einer for-Schleife jeweils abgefragt, ob die vorherigen beiden Bits identisch sind oder nicht, wozu sich im Binärsysten natürlich das XOR anbietet. Sind die Bits nicht gleich, so wird wieder ein zufälliges Bit erzeugt, ansonsten wird der invertierte Wert des vorherige Bits als neuer Wert genommen.
Mag sein, dass es nicht die eleganteste Variante ist es zu programmieren, sollte aber funktionieren...
|
|
|
|
|
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.
|
|