Rand beeinflussen ?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

sbrog

Betreff: Rand beeinflussen ?

BeitragSo, Apr 11, 2004 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich folgenden code habe :
Code: [AUSKLAPPEN]


seedrnd millisecs()



Repeat
x = rand(5)
print x
until keyhit(1)




Eine Zahl kommt jetzt jedes fünfte mal vor.
Wie kann ich sagen, dass z.b die 5 doppelt so oft vorkommt ?

Hubsi

BeitragSo, Apr 11, 2004 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier ergibt sich keine regelmäßigkeit. Die Liste könnte auch so aussehen:

  • 3
  • 0
  • 3
  • 2
  • 5
Wie Du siehst kommt in dem Beispiel 1 und 4 gar nicht vor. Die Regelmäßigkeit erreichst Du mit einem Zähler, z.B. so:
Code: [AUSKLAPPEN]
bla=Rand(5)
zaehler=zaehler+1
If zaehler=5 Then bla=deine_Zahl:zaehler=0

Hoffe Dich richtig verstanden zu haben Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Apr 11, 2004 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
da gibt es viele möglichkeiten:

Code: [AUSKLAPPEN]
seedrnd millisecs()


Repeat
x = rand(6)
if x= 6 then x= 5 ; je nach dem welche doppelt kommen soll
print x
until keyhit(1)
[BB2D | BB3D | BB+]

sbrog

BeitragSo, Apr 11, 2004 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hubsi hat Folgendes geschrieben:
Hier ergibt sich keine regelmäßigkeit. Die Liste könnte auch so aussehen:

  • 3
  • 0
  • 3
  • 2
  • 5



ich meinete ja auch "statistisch gesehen kommt eine zahl jedes fünfte mal vor"

sbrog

BeitragSo, Apr 11, 2004 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry für dp


stimmt der code so ? jedes zweite mal ist die chance , dass x = 1 ist verdoppelt
Code: [AUSKLAPPEN]


SeedRnd MilliSecs()
zaehler=0





Repeat
x=Rnd(5)


zaehler = zaehler+1
If zaehler =2
zaehler =0
If x =0
x= 1
EndIf
EndIf

Print x
WaitKey
Until KeyHit(1)

 

Apocalyptic

BeitragMo, Apr 12, 2004 15:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich dich rictig verstanden habe, dürfte dir das hier helfen (aus dem englischen Code Archiv):

Code: [AUSKLAPPEN]
Function Weighted_Random()

   Local Weight[5]
      
   ; Weight each number, 0 thru 4.
      Weight[0] = 10
      Weight[1] = 10
      Weight[2] = 10
      Weight[3] = 10
      Weight[4] = 1
      
   ; Add up the weights.
      TotalWeight = 0
      For Loop = 0 To 4
         TotalWeight = TotalWeight + Weight[Loop]
      Next
      
   ; Choose a random number between 1 and the total weight.
      RandNum = Rand(1, TotalWeight)         
      
   ; Figure out which value this number corresponds to, using the weights.
      For Loop = 0 To 4
         If Weight[Loop] > RandNum Then Return Loop
         RandNum = RandNum - Weight[Loop]
      Next 

End Function
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

sbrog

BeitragFr, Apr 23, 2004 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich will, dass das Programm zwischen bestimmten Ziffern auswählt (z.B 1,5,7) , was muss ich dann schreiben ?

Hubsi

BeitragFr, Apr 23, 2004 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Dim bla(2)
bla(0)=1:bla(1)=5:bla(2)=7
print bla(Rand(0,2))
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group