Forum: Mikrocontroller und Digitale Elektronik 16bit XORSHIFT


von Max H. (hartl192)


Lesenswert?

Ich habe diesen Code für 8bit gefunden:
Beitrag "Re: Pseudzufallszahlen LPC 1768"
Kann ich statt der 8bit Zahl eine 16bit lange nehmen und das XOR 
abhängig von den Bits 13,14,15 machen um die Periode zu verlängern.
Ich brauche nur eine 8bit Pseudozufallszahl, kann ich dann nur das LSB 
als Zahl nehmen. Wie groß wir dann die Periode mit 16 bit sein?

Vielen Dank.

von Max H. (hartl192)


Lesenswert?

Ich habe es jetzt mal mit 16bit auf dem PC laufen lassen und 1000 Werte 
mit Excel in einem Diagramm ausgegeben. Es sieht eigentlich recht 
zufällig aus.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

M. H. schrieb:
> Kann ich statt der 8bit Zahl eine 16bit lange nehmen und das XOR
> abhängig von den Bits 13,14,15 machen
Das Stichwort zum Thema ist LFSR (Linear Feedack Shift Register).
Die Taps (Agriffe) 13..15 sind nicht geläufig...
http://en.wikipedia.org/wiki/Linear_feedback_shift_register
http://home1.gte.net/res0658s/electronics/LFSRtaps.html

M. H. schrieb:
> Es sieht eigentlich recht zufällig aus.
Wenn du ungünstige Abgriffe wählst, kann es sein, dass deine Periode mit 
16 Bit nicht 2^16-1 ist, sondern wesentlich kleiner. Also sind deine 
Zufallszahlen nicht gleichverteilt und von schlechter Qualität.

: Bearbeitet durch Moderator
von Max H. (hartl192)


Lesenswert?

Danke. Der englische Wiki Artikel, hilft mir mehr als der deutsche.
Kann ich nur das untere Byte hernehmen, wenn ich nur 8bit 
Pseudozufallszahlen brauche?

von Axel S. (a-za-z0-9)


Lesenswert?

M. H. schrieb:
> Kann ich nur das untere Byte hernehmen, wenn ich nur 8bit
> Pseudozufallszahlen brauche?

Klar. Es ist gängige Praxis, einen PRNG als LFSR möglichst großer Länge 
zu bauen (und natürlich mit einem Generatorpolynom für maximale Periode) 
und dann nur einige Bits davon zu verwenden.


XL

von Max H. (hartl192)


Lesenswert?

Und der Seed ist einfach nur der Wert, der im Schieberegister steht, 
bevor man beginnt zu Schieben?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.