Jump to content

Random Function


 Share

Recommended Posts

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.

Link to comment
Share on other sites

  • 1 month later...

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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...