Guter Code um zufällig bools zu erzeugen?
-
hi,
mit folgendem code will ich zufällig bool-werte erzeugen. x soll dabei die wahrscheinlichkeit angeben, also wenn x eins ist, soll nur "true" rauskommen, und wenn x null ist, immer false.float x; bool ergebnis; cin>>x; ergebnis=((2*rand()/(RAND_MAX+1))<=x);
ist der code in ordnung, oder gibt es da eine bessere lösung?
thx!
-
Wie wärs mit
also wenn x eins ist, soll nur "true" rauskommen, und wenn x null ist, immer false.
bool erg = x == 1;
?
-
@Knuddlbaer:
Das ist wohl nur eine Randbedingung.
-
jo, dann könnt ich ja gleich selber die zahlen eintippen
-
also nochma grob gesagt:
bei x=0 soll immer false rauskommen,
bei x=1 immer true,
x kann einen beliebigen wert zwischen 0 und 1 annehmen, der die wahrscheinlichkeit angibt, mit der true oder false rauskommt,
bei x=0.5 soll der zufallsgenerator also zu 50% true und zu 50% false bool-werte ausspucken.
hoffe so isses verständlich
-
urgs, mein code is müll
-
so müsste es gehen oder?
float x; bool ergebnis; cin>>x; ergebnis=(((float)rand()/RAND_MAX)<=x);
P.S: sry für die ganzen posts