Echte Random number in C# / Python?
Es gibt in C# ja bspw.
Random( [Min Int], [Max Int] )
Allerdings wird da glaub ich die Sys time als Seed genommen, also Pseudo Random. Ich brauche sowas wie Random.org, allerdings halt offline, als Code.
Ich brauch das vor allem in C#, Python werd ichs allerdings früher oder später auch gebrauchen können, auserdem läst sich das ja recht einfach übersetzen.
Danke schon mal,
LG Twizzy
6 Antworten
Dafür gibt es in Python das secrets-Modul: https://docs.python.org/3/library/secrets.html#module-secrets
In C# gibt es das: https://msdn.microsoft.com/en-us/library/system.security.cryptography.rngcryptoserviceprovider(v=vs.110).aspx
Danke, sieht nach etwas aus was ich gesucht habe.
LG Twizzy
Für echte Zufallszahlen brauchst du ein spezielles Hardware-Modul, das geht softwareseitig prinzipiell nicht. Da Lottozahlen-Trommeln zu aufwendig, klobig und langsam sind, nimmt man üblicherweise Halbleiterbauelemente, die auf Quanteneffekten beruhen, z. B. Diodenrauschen. Dazu gibt es spezielle Treiber und spezielle APIs - wie man auf eine Treiber-DLL zugreift, steht in den Dokus zu den Programmiersprachen.
Echten Zufall geht nicht so gut.
In Python benutzt man eigentlich das Modul random aus der Standardbibliothek:
import random
print random.randint(x, y)
Das funktioniert eigentlich relativ gut.
Hier ist der Quellcode von dem random-Modul:
https://docs.python.org/3/library/secrets.html
Das sollte reichen.
In C# gibt es nur die Random Klasse für Zufallszahlen. Da Computer ausschließlich mathematisch und logisch arbeiten, können sie so etwas wie Zufall nicht verstehen.
'Echte' Zufallszahlen, wie du sie haben willst, kann kein Computer der Welt ausspucken. Du musst dich da mit dem zufrieden geben, was C# / das .Net Framework und Python hergeben.
Naja, dass ist mir Klar, aber Random.org funzt ja auch, ich hab mal gelesen das der code sich an realen ereignissen orientieren.
Ich wollte halt nur wissen wie der code so in etwa ausieht ...
Wenn sich code an realen ereignissen orientiert ist es ja wohl nicht mehr random sondern direkt durch etwas beeinflusst.