Algorithmus für boolsche Randombelegung

Gast #2461381
Lesenswert?

Hallo zusammen!!

Ich bin nun schon längere Zeit daran in C einen Algorithmus zu finden, 
aber irgendwie komm ich nicht so recht auf eine schöne lösung, und hatte 
gehofft, ihr könnt mir weiterheilfen.

Folgendermaßen: Ich habe ein zweidimensionales Array, das soll mit 
zufälligen Boolschen Werten befüllt werden. So weit so gut, das wär kein 
Problem.

Jedoch möchte ich gerne einen "Faktor" zwischen 0 und 100 mitgeben, der 
die Verteilung zwischen True und False bestimmt.

also Faktor = 0  ->>  Array mit false initialisiert
     Faktor = 100 ->> Array mit true  initialisiert
     Faktor = 50 ->>  Array ca 50/50 verteilt mit true und false 
initialisiert.

Habt ihr eine Idee wie man so etwas realisieren kann?

Herzlichen Dank,
LG
#2461417
Lesenswert?

debugger schrieb:

>      Faktor = 50 ->>  Array ca 50/50 verteilt mit true und false
> initialisiert.

und wenns genau 50/50 sein soll, dann befüllt man sein Array mit einer 
entsprechenden Anzahl an false Werten, mit einer entsprechenden Anzahl 
an true Werten und benutzt den

http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle

Algorithmus um diese Werte im Array durchzumischen.

Auf die Art kann man dann ganz genau bestimmen, wieviele true Werte im 
Array vorkommen sollen.
#2461418
Lesenswert?

@Klaus, bebugger

Damit wird im Mittel die gewünschte Verteilung erreicht.

Ich habe die Threadstarter so verstanden:
Es sollen exakt 50% oder halt 0% oder 100% oder was auch immer erreicht 
werden, lediglich die Verteilung ist zufällig.

Dann müsste man es ungefähr so lösen:
1
for (int i=0; i< factor/arraygroesse;++i){
2
  while (position=randomPositionInArray() && notTaken(position));
3
  array(position)=true;
4
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren