How do you pick out 5 unique random numbers from 22 numbers?
This tutorial describes a very efficient method for picking N unique random numbers from a list of M numbers. It assumes that N is less than or equal to M, and that the numbers being selected from go from 0 to M-1.
You can also use this technique to pick a number of elements from an array - as will be shown below. For example, you could pick 3 songs from a list of 100 songs.
The algorithm guarantees that the numbers are produced in sorted order, and that the probability of picking each number is the same.
There are two common techniques used for accomplishing this, both of which involve putting the numbers into an array. The first, and least efficient method is to pick a number, and then, when picking other numbers, test to see if the number has already been picked. The second method is to use Array.splice() to remove the elements from the array as each number is picked. Neither of these methods are as efficient as the method I am going to describe here.
|» Level Intermediate|
Rating: 2 Votes: 4
|Flash Actionscripting obsessive compulsive.|
|Download the files used in this tutorial.|
|Download (0 kb)|
|More help? Search our boards for quick answers!|