February 2010
M T W T F S S
« Jan   Mar »
1234567
891011121314
15161718192021
22232425262728

Mechanism for generation random number from 1 to 5

Problem
I need understand how i can generate random numbers. And the end i need generate random number from 1 to 5.

Solution
Using Math.random and Math.ceil

Detailed explanation
Steps how all this must work:

1. Need generate random number

trace("Need generate random number");

trace(Math.random());

If you want to see for example first 100 generated numbers you can use next code:

trace("Need generate random number");

for (var i=0; i<100; i++) {

var a=Math.random();

trace(a);

}

r1

2. Multiply generated number (from step 1) by 5

trace("Multiply generated number (from step 1) by 5");

var randomNumber:Number=Math.random();

var multiplied:Number=randomNumber*5;

trace(multiplied);

If you want to see first 100 numbers you can use next code:

trace("Multiply generated number (from step 1) by 5");

for (var i=0; i<100; i++) {

var randomNumber:Number=Math.random();

var multiplied:Number=randomNumber*5;

trace(multiplied);

}

r2

3. In the end you need calculate ceiling.

trace("In the end you need calculate ceiling.");

var randomNumber:Number=Math.random();

var multiplied:Number=randomNumber*5;

var ceiling:Number=Math.ceil(multiplied);

trace(ceiling);

To see first 100 numbers you can use next code:

trace("In the end you need calculate ceiling.");

for (var i=0; i<100; i++) {

var randomNumber:Number=Math.random();

var multiplied:Number=randomNumber*5;

var ceiling:Number=Math.ceil(multiplied);

trace(ceiling);

}

r3

But on page http://help.adobe.com/en_US/AS3LCR/Flash_10.0/Math.html#random%28%29 you can find next info:

Returns a pseudo-random number n, where 0 <= n < 1. The number returned is calculated in an undisclosed manner, and pseudo-random because the calculation inevitably contains some element of non-randomness.

So its mean possible next situation: 0x5=0 and we will get 0. But we need numbers from 1 to 5. So we can use next code:

trace("In the end you need calculate ceiling.");

for (var i=0; i<100; i++) {

var randomNumber:Number=Math.random();

var multiplied:Number=randomNumber*4;

var ceiling:Number=1+Math.ceil(multiplied);

trace(ceiling);
}

You can unite this 3 lines to 1:

var myRandomNumber:Number = Math.ceil(Math.random() * 5);

trace(myRandomNumber);

Also you can see 100 random numbers:

for (var i=0; i<100; i++)

{

var myRandomNumber:Number = Math.ceil(Math.random() * 5);

trace(myRandomNumber);

}

In attached files you can find file with code.

Source:
random

Thank you for reading.

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>