Forum: Mikrocontroller und Digitale Elektronik Zufallszahlen mit C18


von Rudi (Gast)


Lesenswert?

gibt es irgendeine Möglichkeit oder Library, um in C18 schnell 
Zufallszahlen zu generieren (0-1000)?

Rudi

von Rudi (Gast)


Lesenswert?

niemand eine Idee?

von Michael H. (morph1)


Lesenswert?

Das Problem liegt wohl bei "schnell" srand() und rand() kann der c18 von 
alleine wenn du die math.h einbindest.

wirklich zufällige zahlen kriegst du dann wenn du auf einem offenen 
analogeingang misst und die letzten paar stellen auch noch heranziehst 
:)

von Rudi (Gast)


Lesenswert?

an die Einbeziehung eines Analogeinganges hab ich schon gedacht. Aber 
damit kann ich keinen Bereich von 0-1000 abdecken...

in der math.h hab ich gerade etwas herumgestöbert, rand bzw. srand ist 
dort aber nicht enthalten.

von Michael W. (retikulum)


Lesenswert?

Such mal in der stdlib.h
Michael

von Rudi (Gast)


Lesenswert?

jup habs gefunden, danke.

von ayxayx (Gast)


Lesenswert?

Wenn du aber halbwegs zufällige Zahlen haben möchtest kommst du über 
einen Analogeingang nicht herum. Sonst spuckt die Methode immer die 
selben zahlen aus. Gruß

von Michael H. (morph1)


Lesenswert?

Ups, mein Fehler :D
Sorry wegen der falschen Lib.

Ich würde wie mein Vorredner unbedingt einen Analogwert als Seed 
verwenden, sonst wird das nie richtig "zufällig".

von Sven P. (Gast)


Lesenswert?

Gängige Variante wär auch, eine Zenerdiode mit dem ADC zu vermessen. 
Zenerdioden sind von Haus aus eh schon Rumpelgurken :-)

von holger (Gast)


Lesenswert?

>Wenn du aber halbwegs zufällige Zahlen haben möchtest kommst du über
>einen Analogeingang nicht herum. Sonst spuckt die Methode immer die
>selben zahlen aus. Gruß

Das kommt drauf an wie die Zufallszahlen erzeugt werden.
Wenn der Zufall mit Benutzereingaben gekoppelt sein
soll könnte man rand() z.B. in einem Timerinterrupt
dauernd aufrufen. Also ständig Zufallszahlen erzeugen
auch wenn sie noch gar nicht gebraucht werden..
Alleine durch die unterschiedlichen Reaktionszeiten
bekommt man so schon ganz brauchbare Ergebnisse.

von Uhu U. (uhu)


Lesenswert?

Aus einem Analogeingang würde ich höchstens den Seed für einen 
Software-Zufallsgenerator ziehen.

Was aus einem Analogeingang in den µC kommt, ist nämlich alles nur nicht 
gleichverteilt, wenn man dafür nicht den entsprechenden Hardwareaufwand 
treibt.

von Rudi (Gast)


Lesenswert?

danke inzwischen mal für die Antworten.
Ist es möglich den internen Oszilator mit dem externen zu Vergleichen? 
Ich bin mir aber nicht sicher ob die Diskrepanzen ausreichen würden, um 
Zufallszahlen zu erzeugen...

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.