WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

binäre Zufallszahlen

 

Verena

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2010, 13:01     Titel: binäre Zufallszahlen
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 15.04.2010, 13:05     Titel:
  Antworten mit Zitat      
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

Forum-Guru



Beiträge: 283
Anmeldedatum: 09.11.09
Wohnort: Stuttgart
Version: R2008b
     Beitrag Verfasst am: 15.04.2010, 16:57     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2010, 17:45     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 16.04.2010, 11:01     Titel:
  Antworten mit Zitat      
Hallo,

folgender Code müsste eigentlich funktionieren:

Code:
x = zeros(1,N);

x(1:2) = randint(1,2);

for k = 3:length(x)
   
    if xor(x(k-1),x(k-2)) == 1        
       
        x(k) = randint(1,1);
       
    else

        x(k) = ~x(k-1);
   
    end
   
end


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...
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.