Sign in to follow this  
Followers 0
Toffen

Random Function

6 posts in this topic

How can i prevent the same random number twice. Etc Random = (1,10,1) If the first random is 9 i dont want 9 to show up at the next random number

Thanks

Share this post


Link to post
Share on other sites



you could store the numbers in an array and if the number was found reroll

Share this post


Link to post
Share on other sites

How can i prevent the same random number twice. Etc Random = (1,10,1) If the first random is 9 i dont want 9 to show up at the next random number

Thanks

Try this:

#include <Array.au3>

Dim $randomArray[11]
FillArrayRandom($randomArray, 1, 10, 1)
_ArrayDisplay($randomArray)

Func FillArrayRandom(ByRef $array, $min, $max, $maxOccurence, $round = 0, $maxTries = 10000)
    Local $i, $number
    For $i = 1 to UBound($array)-1
        For $n = 0 to $maxTries
            $number = Round(Random($min, $max), $round)
            If $maxOccurence = 0 OR _KeyInArrayCount($array, $number) < $maxOccurence Then ExitLoop
        Next
        If _KeyInArrayCount($array, $number) >= $maxOccurence Then Return SetError(1)
        $array[$i] = $number
    Next
EndFunc

Func _KeyInArrayCount($array, $key)
    Local $i, $n = 0
    For $i = 1 to UBound($array)-1
        If $array[$i] = $key Then $n += 1
    Next
    Return $n
EndFunc

When the words fail... music speaks

Share this post


Link to post
Share on other sites

Sure, I remembered writing a function that generated an array with random numbers that didn't repeat themselves.

It's posted in autoit wrappers :P

#515701


Broken link? PM me and I'll send you the file!

Share this post


Link to post
Share on other sites

Thanks for help

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0