random: Difference between revisions
Jump to navigation
Jump to search
m (formatted syntax) |
No edit summary |
||
Line 8: | Line 8: | ||
|[[Image:bellcurve.jpg|right|200px]] Random real (floating point) value from 0 (inclusive) to x (not inclusive).<br><br> | |[[Image:bellcurve.jpg|right|200px]] Random real (floating point) value from 0 (inclusive) to x (not inclusive).<br><br> | ||
Since Arma 3 v1.55.133393 alternative syntax is added, allowing to define [https://en.wikipedia.org/wiki/Normal_distribution Gaussian Distribution] params. Uses the same method as [[setTriggerTimeout]] command. Quite useful for spawning loot for example, making more valuable items more rare. |= Description | Since Arma 3 v1.55.133393 alternative syntax is added, allowing to define [https://en.wikipedia.org/wiki/Normal_distribution Gaussian Distribution] params. Uses the same method as [[setTriggerTimeout]] command. Quite useful for spawning loot for example, making more valuable items more rare.<br><br> | ||
Since Arma 3 v1.67.139663 an alternative syntax is available, allowing to generate semi-random number based on provided seed.<br><br> | |||
Since Arma 3 v1.67.139663 an alternative syntax is available, generating pseudo-random [https://en.wikipedia.org/wiki/Perlin_noise noise texture] based on provided seed and returning a single number between 0 (included) and 1 (excluded) at supplied ''x'' and ''y'' coordinates. |= Description | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
|'''random''' x |= Syntax | |'''random''' x |= Syntax | ||
|p1= x: [[Number]] | |p1= x: [[Number]] | ||
| [[Number]] |= Return value | | [[Number]] |= Return value | ||
|s2= '''random''' [min, mid, max] (''Since Arma 3 v1.55.133393'')|= Syntax | |s2= '''random''' [min, mid, max] (''Since Arma 3 v1.55.133393'')|= Syntax | ||
|p21= [min, mid, max]: [[Array]] |= | |p21= [min, mid, max]: [[Array]] |= | ||
|p22= min: [[Number]] |= | |p22= min: [[Number]] |= | ||
|p23= mid: [[Number]] |= | |p23= mid: [[Number]] |= | ||
|p24= max: [[Number]] |= | |p24= max: [[Number]] |= | ||
|r2= [[Number]] |= Return value | |||
|s3= seed '''random''' x (''Since Arma 3 v1.67.139663'')|= Syntax | |||
|p31= seed: [[Number]] |= | |||
|p32= x: [[Number]] |= | |||
|r3= [[Number]] |= Return value | |||
|s4= seed '''random''' [x,y] (''Since Arma 3 v1.67.139663'')|= Syntax | |||
|p41= seed: [[Number]] |= | |||
|p42= [x, y]: [[Array]] |= | |||
|p43= x: [[Number]] |= | |||
|p44= y: [[Number]] |= | |||
|r4= [[Number]] |= Return value | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
Revision as of 13:42, 13 December 2016
Description
- Description:
- 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, 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.
Since Arma 3 v1.67.139663 an alternative syntax is available, allowing to generate semi-random number based on provided seed.
- Groups:
- Uncategorised
Syntax 1
Syntax 2
- Syntax:
- random [min, mid, max] (Since Arma 3 v1.55.133393)
- Parameters:
- [min, mid, max]: Array
- min: Number
- mid: Number
- max: Number
- seed: Number
- x: Number
- Return Value:
- Number
Syntax 3
- Syntax:
- seed random x (Since Arma 3 v1.67.139663)
- Parameters:
- seed: Number
- [x, y]: Array
- x: Number
- y: Number
- Return Value:
- Number
Syntax 4
- Syntax:
- seed random [x,y] (Since Arma 3 v1.67.139663)
- Return Value:
- Number
Examples
- Example 1:
_rNumber = random 1;
- Example 2:
_rNumber = random -10;
- Example 3:
- To select random value from an array:
_array = ["apples", "pears", "bananas", "M16"]; _random = _array select floor random count _array; // or since Arma 3 v1.55.133393 _random = selectRandom _array;
- 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
- See also:
- Math CommandsselectRandom
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
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=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)
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.00
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Command Group: Uncategorised
- Scripting Commands OFP 1.99
- Scripting Commands OFP 1.96
- Scripting Commands OFP 1.46
- Scripting Commands ArmA
- Command Group: Variables
- Scripting Commands ArmA2
- Scripting Commands Arma 3
- Scripting Commands Take On Helicopters