Randomize in C++
-
- Beiträge: 6167
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Randomize in C++
Ich habe ein Zufallsgenerator auf meinem Arduino-Programm.
Nur leider, wird die Zufalls folge bei jedem Programm-Start gleich abgearbeitet.
Gibt es unter C++ auch ein Randomize ?
Nur leider, wird die Zufalls folge bei jedem Programm-Start gleich abgearbeitet.
Gibt es unter C++ auch ein Randomize ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 98
- Registriert: Di 4. Aug 2015, 15:29
- OS, Lazarus, FPC: Linux, Raspbian, Windows
- CPU-Target: 64/32 Bit
Re: Randomize in C++
Hallo Mathias,
die gesuchte Funktion heißt RandomSeed().
Mehr Info kannst Du über die Hilfe-Funktion der Arduino-IDE erhalten.
Wenn ich "echte" Zufallszahlen benötige, die von der ansonsten immer gleichen Folge abweichen, übergebe ich der Funktion RandomSeed() einen Parameter, der eine Funktion aus Datum, Uhrzeit und ggf. Laufzeit eines Kommunikationsprogramms (in ms) eines angeschlossenen PCs überträgt.
Eine andere Möglichkeit besteht in der Verwendung der Laufzeit des Arduino-Sketches, wenn dort Pseudo-Eingaben vom Anwender erfolgen. Die Eieruhr läuft weiter. Durch die mal schnelle und mal langsamere Eingabe-Verzögerung bringst Du auch hinreichend viel Zufall in RandomSeed() hinein.
Beste Grüße
Andreas
die gesuchte Funktion heißt RandomSeed().
Mehr Info kannst Du über die Hilfe-Funktion der Arduino-IDE erhalten.
Wenn ich "echte" Zufallszahlen benötige, die von der ansonsten immer gleichen Folge abweichen, übergebe ich der Funktion RandomSeed() einen Parameter, der eine Funktion aus Datum, Uhrzeit und ggf. Laufzeit eines Kommunikationsprogramms (in ms) eines angeschlossenen PCs überträgt.
Eine andere Möglichkeit besteht in der Verwendung der Laufzeit des Arduino-Sketches, wenn dort Pseudo-Eingaben vom Anwender erfolgen. Die Eieruhr läuft weiter. Durch die mal schnelle und mal langsamere Eingabe-Verzögerung bringst Du auch hinreichend viel Zufall in RandomSeed() hinein.
Beste Grüße
Andreas
Ubuntu 14.04 LTS / Raspbian / Windows: Lazarus ab 0.9 bis 3.0
-
- Beiträge: 6167
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Randomize in C++
die gesuchte Funktion heißt RandomSeed().
Danke, das hilft schon weiter.
Wenn ich "echte" Zufallszahlen benötige,
Ich werde eine Zähler in den Multiplexer einbauen, und jedes mal wen ich Start drücke, kann ich randomSeed(Zaehler) aufrufen.
Somit müsste es eigentlich gehen.
PS: der Sketch läuft auf einem ATtiny 84
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 106
- Registriert: Mi 3. Feb 2016, 09:39
- OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
- CPU-Target: 32/64Bit,ARM(RPi)
- Wohnort: nahe Grimma
Re: Randomize in C++
Ich hab das immer so gemacht:
Hier noch eine schöne Erklärung zu dem Thema:
http://www.learncpp.com/cpp-tutorial/59-random-number-generation/
Code: Alles auswählen
#include <cstdlib> //random Funktionen
#include <time.h>
int main ()
{
srand(time(0)); //seeder mit der aktuellen Systemzeit
int randomwert = rand();
return 0;
}
Hier noch eine schöne Erklärung zu dem Thema:
http://www.learncpp.com/cpp-tutorial/59-random-number-generation/
Mfg Requion
Das beste an Standards ist, dass es so viele davon gibt.
Das beste an Standards ist, dass es so viele davon gibt.
-
- Beiträge: 6167
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Randomize in C++
Das wird nicht gehen, der Arduino hat keine Systemuhr.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 106
- Registriert: Mi 3. Feb 2016, 09:39
- OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
- CPU-Target: 32/64Bit,ARM(RPi)
- Wohnort: nahe Grimma
Re: Randomize in C++
Okay, da fehlte mir wohl das Wissen zum Thema Arduino.
Hilft dir das weiter?
https://www.arduino.cc/en/Reference/RandomSeed
Hilft dir das weiter?
https://www.arduino.cc/en/Reference/RandomSeed
Mfg Requion
Das beste an Standards ist, dass es so viele davon gibt.
Das beste an Standards ist, dass es so viele davon gibt.
-
- Beiträge: 6167
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Randomize in C++
Hilft dir das weiter?
Den hatte ich gestern auch offen, aber das wird auch nicht das Wahre sein, der Input flackert höchsten 2-3 Digits.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6167
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Randomize in C++
Ich werde eine Zähler in den Multiplexer einbauen, und jedes mal wen ich Start drücke, kann ich randomSeed(Zaehler) aufrufen.
Somit müsste es eigentlich gehen.
So habe ich es jetzt gemacht, und es scheint zu klappen.
Danke für die Anhaltspunkte.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot