C# zufällige Zahl

3 Antworten

Math.Random(1,6);

Genauer:

Math.Random(kleinste Zahl, größte Zahl);

Den rest such dir selbst zusammen, Google weiß bescheid.

Mit void meinst du wohl die Methode , die bei button klick aufgerufen wird ? Void ist übrigens nur der rückgabewert der Methode und heißt so viel wie leer , OK ist eigentlich auch egal . zufallszahl en sind nicht wirklich zufällig , die meisten Menschen , die auch an Zauberei glauben, sind aber der festen Überzeugung : mein PC kann eine Zufallszahl ausdenken . das ganze wird aber nur aus der Systemzeit errechnet . dafür : Math.Random(1,6);


triopasi  10.11.2013, 11:33

Ja du hast Recht, die 'Zufallszahlen' werden berechnet (->Pseudozufallszahlen) ABER die sin trotzdem zufälliger als die Zahlen die du als 'Zufallszahlen' nennen kannst. Zudem besitzen neue Intel CPUs ja dieses SecureKey womit sie absolut zufällige Zahlen gemerieren sollen.

0
triopasi  10.11.2013, 11:40
@procoder42

Aber so komplex dass du da nie ein Muster erkennen wirst. Also sind die Zahlen praktisch zufällig ^^

0
procoder42  10.11.2013, 11:49
@triopasi

Man muss bedenken : ein PC ist eine logisch denkende Maschine . und nur weil der Nutzer kein Muster erkennt heißt das nicht , das die Zahl zufällig ist . und 3/4 der zufälle bei Computern sind nicht mal pseudozufällig a la " unser Zufalls generator hat sie als Gewinner ausgewählt"

0
ceevee  10.11.2013, 18:29
@procoder42

Das kannst du dir auch gerne mal selber nachprogrammieren... ein einfacher Zufallszahlenalgorithmus wäre nach der Formel

x_n = a * x_(n-1) + b % c

erstellbar. x_0 wäre die erste Zufallszahl (seed), die sich aus der Systemzeit ergeben kann. Für a,b und c wählst du dir hohe Konstanten. Du wirst dabei sehen, dass sich eine lange Reihe von gleichverteilten Zahlen ergibt, die ewig braucht, bis sie sich wiederholt. Für sicherheitskritische Anwendungen wie Gewinnspiele ist das natürlich nicht ausreichend, für einen Anfänger, der mal einen Würfel programmieren will, allerdings schon ;)

Übrigens werden nicht alle Zufallszahlen aus der Systemzeit gebildet, dev/random bzw. dev/urandom unter UNIX sammelt Umgebungsrauschen von Gerätetreibern und für echte Zufallszahlen gibt's Geräte oder man zapft die API von random.org an.

0
procoder42  10.11.2013, 20:09
@ceevee

Was ich mit diesen "Gewinnspielen" sagen wollte : da gewinnt eh jeder , bzw hauptsächlich die Firma, die dir deine daten abnimmt und verkauft

0

Hmmm... also eine möglich Lösung wäre: ...

Random r = new Random();
int random = r.Next(0, 7); // Minimum, Maximum + 1
MessageBox.Show(random.ToString());

...