| |
|
|
Jörg Sellmeyer | Ich befasse mich gerade mit der Erstellung von zufälligen Bitmustern. Das ist ja Dank Rnd() und Bin$ auch kein Problem. Ich möchte jetzt nur bestimmte Bitmuster ausschließen.
Beispiel:
Die Zufallszahl 27187 ergibt folgendes Bitmuster: 0110 1010 0011 0011
Wie kann ich jetzt erreichen, daß bestimmte Bitmuster nicht erscheinen. Gibt es da eine mathematische Herangehensweise oder muß ich einfach alle Bitmuster untersuchen und Unerwünschte rausschmeißen oder verändern. Wenn also z.B. das Muster 1010 nicht auftauchen soll. Noch komplizierter, wenn gleich mehrere nicht auftauchen sollen. Also z.B. 1010 und 1001. Kann ich das irgendwie mit den &, |, >>, << Operatoren erreichen, mit denen ich die ganze Zahl untersuche? Im Moment würde ich es durch einen Vergleich der einzelnen Gruppen lösen aber das muß doch noch eleganter gehen... |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 29.02.2012 ▲ |
|
|
|
|
Nico Madysa | Mir fällt spontan nichts Einfacheres ein, als dass du den per Rnd() gegebenen Bereich, aus dem die Zufallszahlen kommen, etwas komprimierst und die Zahlen, die du nicht haben willst, durch solche ersetzt, die außerhalb des komprimierten Bereichs liegen.
Beispiel: Du willst Zahlen von 0 bis 9, aber die 7 soll aber nicht auftauchen. Also machst du statt
Folgendes:
zahl& = rnd(9)'die 9 kann jetzt nicht mehr auftauchen
case zahl& = 7 : zahl& = 9'hierdurch kann die 9 auftauchen, die 7 aber nicht mehr
Damit wäre zumindest sichergestellt, dass immer noch alle Zahlen, die auftauchen dürfen, gleich häufig auftauchen.
Was Besseres fällt mir leider nicht ein. |
|
|
| |
|
|
|
Jörg Sellmeyer | Danke per Deinen Beitrag. Ich hab's jetzt einfach so gelöst, dass ich die Zahl aus den erwünschten Bitmustern zusammensetze. So brauche ich nichts löschen, sondern hab automatisch die richtigen Bits drin. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 04.04.2012 ▲ |
|
|
|
|
Nico Madysa | Oder so. |
|
|
| |
|
|