Erzeugen eines Zufalls
-
z.B.
srand(unsigned(time(0)); int r = rand();
-
Folge doch einfach mal diesem Link:
FAQ - ANSI CDer bringt dich zu den C-FAQs wo du schöne Beiträge zum Thema Zufallszahlen findest.
-
man sollte aber nicht M$ rand() nehmen
das ist Lineare congruent aber
ok... es wird alles in unsigned Long gerechnet
z=(seed*a+b);
und dann!!!
z=z>>16;//hmmmmmmmm
z=z%RAND_MAX-1
-
binde am besten die time.h ein und im Programm kannst .
Diese headerfile mist nämlich die vergangenen sec. seit 1980 glaub ich.
Du dann eine zufallszahl
z.b. so machen:int zufall;
int zufall=time(0)%5/* Modula ist gut zum verwenden wenn du dich für einen best. berreich beschraenken willst*/
cout<<zufall;
-
das ist unsinn
1%5=1
2%5=2
die periode ist dann zb 5 und die zahlen sind zufaellig wie vorgaenger u nd nachfolger
-
Nein, time mist die vergangenen sec. seit 1980 und dann kommt das Modulo
wenn du das z.b. nur ein mal aufrufst dann ist das zufall genug
-
was ist den n%5 und (n+1)%5 ?
das erste ist halt z und das zweite z+1 oder??? z-4???
-
Ich will dem typen der das Thema auf gemacht hat nur helfen und der will eben nur eien zufallszahl dafür eignet sich halt AUCH die time.h was ihm vielleicht besser gefällt hier ein bsp.:
#include<iostream.h>
#include<time.h>int main()
{
int d=time(0)%5;
cout<<d;return 0;
}
-
so dann mal aus NR
//! seed mus global vor begin initialisiert werden double randomquickndirty() { z=(seed*106+1283)%6075; seed=z; return static_cast<double>(z)/6075.0; }
ich hab zwar keine ahnung was sowas helfen soll aber fuer nich notwendige zufaelligkeit geht auch rand();
oderdouble rand() { return 0.5; }
-
was bitte spricht gegen rand() ?
es ist nicht perfekt (bei weitem nicht) aber immer noch um laengen besser als ein time()%x
oder sonstige Sachen die sich so einfach verwenden lassen. (ohne externe Lib)
-
das das M$ rand() nur die random stellen benutzt die am wenigsten random sind?
-
Genau! Einige Zahlen sind ja auch zufälliger als andere und ich bin auch gleicher als du
Naja jedenflals früüüüher in der Schule haben wir mal nen Test aka "Chaos-Theorie" gemacht mit rand() und es kamen so ziemlich alle Zahlen ziemlich gleich oft dran.
War allerdings mit Turbo C++.
-
suche mal ueber alle foren nach rand() und zufall
dann lies mal nen bissel ueber die zufallsgeneratoren
und alles wird klarer.