random

From Bohemia Interactive Community
Jump to: navigation, search
Introduced with Operation Flashpoint version 1.00
  

Click on the images for descriptions

Introduced in

Game:
Operation Flashpoint
Version:
1.00

Description

Description:
bellcurve.jpg
Random real (floating point) value from 0 (inclusive) to x (not inclusive).

Since Arma 3 v1.55.133393 alternative syntax is added, allowing to define Gaussian Distribution params. Uses the same method as setTriggerTimeout command. Quite useful for spawning loot for example, making more valuable items more rare.

Since Arma 3 v1.67.139663 an alternative syntax is available, allowing to generate semi-random number based on provided seed.

Since Arma 3 v1.67.139663 an alternative syntax is available, generating pseudo-random noise texture based on provided seed and returning a single number between 0 (included) and 1 (excluded) at supplied x and y coordinates.

Syntax

Syntax:
random x
Parameters:
x: Number
Return Value:
Number

Alternative Syntax

Syntax:
random [min, mid, max]        (Since Arma 3 v1.55.133393)
Parameters:
[min, mid, max]: Array
min: Number
mid: Number
max: Number
Return Value:
Number

Alternative Syntax 2

Syntax:
seed random x        (Since Arma 3 v1.67.139663)
Parameters:
seed: Number
x: Number
Return Value:
Number

Alternative Syntax 3

Syntax:
seed random [x,y]        (Since Arma 3 v1.67.139663)
Parameters:
seed: Number
[x, y]: Array
x: Number
y: Number
Return Value:
Number

Examples

Example 1:
_rNumber = random 1;
Example 2:
_rNumber = random -10;
Example 3:
Generate random position inside a circle_center getPos [_radius * sqrt random 1, random 360];
Example 4:
Compare (each command was executed 100000 times to gather statistics):floor random 10; // 0 - 10099 (10%) // 1 - 10040 (10%) // 2 - 10154 (10%) // 3 - 9910 (10%) // 4 - 10023 (10%) // 5 - 9937 (10%) // 6 - 10118 (10%) // 7 - 9716 (10%) // 8 - 9986 (10%) // 9 - 10017 (10%) floor random [0,5,10]; // 0 - 109 (0%) // 1 - 1604 (2%) // 2 - 6839 (7%) // 3 - 16671 (17%) // 4 - 24706 (25%) // 5 - 24702 (25%) // 6 - 16626 (17%) // 7 - 6925 (7%) // 8 - 1702 (2%) // 9 - 116 (0%) floor random [0,10,0]; // 0 - 19 (0%) // 1 - 209 (0%) // 2 - 817 (1%) // 3 - 2384 (2%) // 4 - 4841 (5%) // 5 - 8976 (9%) // 6 - 14067 (14%) // 7 - 18955 (19%) // 8 - 23605 (24%) // 9 - 26127 (26%) floor random [0,10,5]; // 0 - 11 (0%) // 1 - 98 (0%) // 2 - 430 (0%) // 3 - 1149 (1%) // 4 - 2384 (2%) // 5 - 4546 (5%) // 6 - 8612 (9%) // 7 - 16283 (16%) // 8 - 28393 (28%) // 9 - 38094 (38%)

Additional Information

Multiplayer:
-
See also:
Math CommandsselectRandomselectRandomWeighted

Notes

Only post proven facts here. Report bugs on the feedback tracker. Use the talk page or the forums for discussions.
Add New Note | How To

Notes

Posted on July 12, 2015 - 20:32 (UTC)
Hcpookie
Random selections including negative numbers can be obtained via: _Xrnd = round(random 200) -100; This will yield numbers between -100 and 100.
  • Be careful using random numbers in multiplayer, each client will come up with a different result. See multiplayer tutorials for more general information about locality.
  • The number returned is unlikely to be a whole number.
    To return a whole number use either round, ceil or floor together with random:
x=round(random 5) will return 0,1,2,3,4 or 5. (non-uniform distribution, 0 and 5 are half as likely to be selected than any of the other numbers)
x=floor(random 5) will return 0,1,2,3 or 4. (uniform distribution, all numbers have the same probability of being selected)
x=ceil(random 5) will return 0,1,2,3,4 or 5. (0 is very unlikely, but possible, as ceil 0 is 0)