Jump to content
Sign in to follow this  
bouval

Random Numbers

Recommended Posts

bouval

Hopefully I am not double posting but i could not find any answers in the forums.

I need to generate random numbers to generate random exam papers.

my script will return for example: 1, 4, 5, 2, 1, 7, 4, 10, 5, 15, 12, 2, 14, 3, 5.........

i can not have duplicate numbers generated, that will cause some duplicate questions on the exam paper.

I have 50 questions, need to randomly select only 20 of them.

thanks

Bouval

Share this post


Link to post
Share on other sites
SmOke_N

I don't usually do this... but I saw weaponx typing :)

#include <array.au3>;For _ArrayDisplay
$sRanString = _RandomGenerate(1, 50, 20)
MsgBox(0, "Returned as String", $sRanString)
$aRanArray = _RandomGenerate(1, 50, 20, 0)
_ArrayDisplay($aRanArray, "Returned as an Array")

Func _RandomGenerate($nMinRnd, $nMaxRnd, $nMaxOut, $nAsString = 1)
    Local $sNHold, $nRand, $vChar = ",", $iCC = 0
    While $iCC < $nMaxOut
        $nRand = Random($nMinRnd, $nMaxRnd, 1)
        If StringInStr($vChar & $sNHold, $vChar & $nRand & $vChar) = 0 Then
            $sNHold &= $nRand & $vChar
            $iCC += 1
        EndIf
    WEnd
    If $nAsString Then Return StringTrimRight($sNHold, 1)
    Return StringSplit(StringTrimRight($sNHold, 1), $vChar)
EndFunc

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites
weaponx

#include <Array.au3>

Dim $array[50]

;Fill array with numbers 1-50
For $X = 0 to 49
    $array[$X] = $X + 1
Next

;_ArrayDisplay($array)

;Shuffle array
For $X = 0 to 49
    $temp = $array[$X]
    $random = Random(0,49,1)
    $array[$X] = $array[$random]
    $array[$random] = $temp
Next

;_ArrayDisplay($array)

$string = _ArrayToString($array,",")

MsgBox(0,"",$string)

EDIT - Smoke am I that predictable? Maybe I should make you a sweet signature like mine. You could be AutoIt Assault

Edited by weaponx

Share this post


Link to post
Share on other sites
bouval

Awesome! Thanks for the help!!!

Share this post


Link to post
Share on other sites
SmOke_N

EDIT - Smoke am I that predictable?

Lately you have been ;)

Awesome! Thanks for the help!!!

Help? We call that giving a man a fish here (rather than teaching him too :) )

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

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  

×