Zufallsgenerator für Zahlen programmieren, wie?
Hi zusammen,
Ich bin komplett neu auf dem Gebiet des Programmierens und würde mir gerne einen Zufallsgenerator programmieren, welcher eine bestimmte Anzahl an Ziffern generiert. (Das soll am besten auf Knopfdruck oder etwas ähnlich einfachem geschehen). Die Programmiersprache ist mir erstmal egal, Hauptsache, ich verstehs und kann selbst schreiben.
Vielen Dank schon mal!
4 Antworten
// 5 Zufallszahlen [1,100]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main(void)
{
int min = 1;
int max = 100;
int num = 5;
time_t t;
time(&t);
srand((unsigned int)t);
for (int i=0;i<num;i++)
printf("%d ", rand() % max + min);
printf("\n");
}
Natürlich. Eine "wirkliche" Zufallszahl kann man nicht programmieren.
Soweit sollte dies aber seinen Zweck erfüllen.
Wie nennst Du das:
repeat
Zufzahl = shl Zufzahl
Zufzahl = Zufzahl + (Port(x) AND 1)
until Zufzahl == full
Sorry aber ich weiß gerade nicht wirklich worauf du hinaus willst?
Okay, Du hast eine vollständige Antwort verdient.
Ich habe in meiner Antwort oben erklärt, daß man aus dem thermischen Rauschen eines analogen Meßwertes eine echte Zufallszahl ableiten kann. Dazu nimmt man das LSBit (Port(x) AND 1) und schiebt es so lange in ein Schieberegister, bis man eine Zufallszahl der gewünschten Größe hat.
Das nennt sich True Random Number Generator.
https://de.wikipedia.org/wiki/Zufallszahlengenerator#Physikalischer_Zufallszahlengenerator
Man kann also ein Programm schreiben, das eine echte Zufallszahl erzeugt.
Ok schon klar.
Wobei die Zahl hier ja nicht wirklich durch das Programm erzeugt wird. Somit finde ich nicht, dass man die Zufallszahl als solche hier "programmiert". Sie steht ja schon vorher fest auf Grund eines physikalischen Ereignisses, wie du ja selber geschrieben hast.
Hier habe ich das "Wie nennst du das" deswegen nicht wirklich verstanden.
Im Endeffekt ist das jetzt aber auch nicht so wichtig. ;)
Und EierBrei kann sich dann ja selber entscheiden ob er thermisches Rauschen und bitweisen Verschiebungen oder mathematische Pseudozufallszahlen will.
Die meisten Programmiersprachen haben einen eingebauten und einfach zu handhabenden "Pseudo-Zufallszahlen-Generator". Der liefert eine Zahl zwischen 0 und 1, also 0.4563456 oder irgendwas.
Diese Zahl multipliziert man und addiert man zu dem gewünschten Ergebnis, also ganze Zahlen von 0 bis 6 oder ähnlich.
Die erzeugten Zufallszahlen können jedesmal neu gewürfelt werden oder man bekommt immer die gleiche Folge an zahlen, wenn man den Zufallszahlengenerator nicht mit einem Befehl wie Randominze oder ähnlich initialisiert.
Beispiele mit Quellcode findet man im Web leicht in dem man seine gewünschte Programmiersprache eingibt gefolgt von Zufallszahlen oder Random.
Dann beschäftige dich mit einer Programmiersprache deiner Wahl. Für Zufallszahlen gibts meist vorgefertigte Funktionen.
Uh, ja. Das Problem hierbei ist viel weniger der Zufallsgenerator, als dass du noch gar nicht programmieren kannst. Selbst wenn wir dir jetzt die wunderschönste Erklärung eines Zufallszahlengenerators liefern, wird dir das ohne Programmierkenntnisse wenig bringen.
Wenn du einfach nur so etwas programmieren möchtest, würde ich dir die Programmiersprache Python empfehlen, die ist recht leicht zu erlernen.
Wenn du konkrete Probleme hast, meld dich gerne noch mal :-)
Auch nur eine Pseudo-Zufallszahl.