Thursday, February 28, 2008

Random Number Generator

To generate 10 unique, non-doubling random numbers this works:
Set Variable: "i" = 1
Loop While (i <> 11)
Set Variable: "rnd" = Random (10)
Set Variable: "x" = 1
Loop While (x <> (Length(Temp)+1))
If ((Substring (Temp, x, 1)) eq rnd)
Set Variable: "rnd" = ""
End If
Set Variable: "x" = x+1
End Loop
If (rnd ne "")
Set Variable: "Temp" = Temp & rnd
Set Variable: "i" = i + 1
End If
End Loop
Use it at random!
Let's have a closer look at this code step by step. First we set a Variable called "i" which is set to the value 1, for use in the Loop While.
Set Variable: "i" = 1
The first loop runs 10 times, because we need 10 numbers.
Loop While (i <> 11)
We use the Random function and put its outcome into Variable "rnd"
Set Variable: "rnd" = Random (10)
The Variable "x" is used to check the content of Variable "Temp" which will hold the final result.
Set Variable: "x" = 1
And now for the tougher bit:
Loop While (x <> (Length(Temp)+1))
If ((Substring (Temp, x, 1)) eq rnd)
Set Variable: "rnd" = ""
End If
Set Variable: "x" = x+1
End Loop
This checks whether a generated random number, held in Variable "rnd", already exists in the "Temp" variable. This is done by looping through every digit in "Temp". The number of loops is determined by the Length function. If the number does exist the variable "rnd" is cleared. If the generated number is not present in "Temp" it is added to it.
If (rnd ne "")
Set Variable: "Temp" = Temp & rnd
Set Variable: "i" = i + 1
End If
We continue the Loop by increasing "i".

That's it!

Courtesy: flashkit.com

No comments:

Post a Comment