|
Written by Rawpulse
|
|
Saturday, 23 June 2007 |
|
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
|