Randomize in C++
-
- Beiträge: 6912
- 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: 6912
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Randomize in C++
Danke, das hilft schon weiter.die gesuchte Funktion heißt RandomSeed().
Ich werde eine Zähler in den Multiplexer einbauen, und jedes mal wen ich Start drücke, kann ich randomSeed(Zaehler) aufrufen.Wenn ich "echte" Zufallszahlen benötige,
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 ... eneration/
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;
}
http://www.learncpp.com/cpp-tutorial/59 ... eneration/
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: 6912
- 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: 6912
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Randomize in C++
Den hatte ich gestern auch offen, aber das wird auch nicht das Wahre sein, der Input flackert höchsten 2-3 Digits.Hilft dir das weiter?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6912
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Randomize in C++
So habe ich es jetzt gemacht, und es scheint zu klappen.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.
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