Difference between revisions of "random"
Jump to navigation
Jump to search
m |
Killzone Kid (talk | contribs) (alt syntax, joined notes. If anyone wishes to separate them again and fix broken note, be my guest) |
||
Line 7: | Line 7: | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
− | | Random real (floating point) value from 0 (inclusive) to x (not inclusive). |= Description | + | |[[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 valueable items more rare. |= Description | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
− | | | + | |'''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 | ||
+ | |||
+ | |p21= [min, mid, max]: [[Array]] |= | ||
+ | |p22= min: [[Number]] |= | ||
+ | |p23= med: [[Number]] |= | ||
+ | |p24= max: [[Number]] |= | ||
+ | |||
+ | | r2= [[Number]] |= Return value | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
Line 24: | Line 34: | ||
<code>_array = ["apples", "pears", "bananas", "M16"]; | <code>_array = ["apples", "pears", "bananas", "M16"]; | ||
_random = _array [[select]] [[floor]] [[random]] [[count]] _array;</code> |= Example 3 | _random = _array [[select]] [[floor]] [[random]] [[count]] _array;</code> |= Example 3 | ||
+ | |||
+ | |x4= Compare (each command was executed 100000 times to gather statistics):<code>[[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,10]; | ||
+ | // 0 - 9 (0%) | ||
+ | // 1 - 94 (0%) | ||
+ | // 2 - 420 (0%) | ||
+ | // 3 - 1197 (1%) | ||
+ | // 4 - 2361 (2%) | ||
+ | // 5 - 4447 (4%) | ||
+ | // 6 - 7082 (7%) | ||
+ | // 7 - 9512 (10%) | ||
+ | // 8 - 11889 (12%) | ||
+ | // 9 - 13093 (13%) | ||
+ | // 10 - 49896 (50%) | ||
+ | |||
+ | [[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%)</code> |= Example 2 | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
− | | [[Math Commands]] |= See also | + | | [[Math Commands]], [[selectRandom]] |= See also |
}} | }} | ||
<h3 style="display:none">Notes</h3> | <h3 style="display:none">Notes</h3> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category:Scripting Commands|RANDOM]] | [[Category:Scripting Commands|RANDOM]] | ||
Line 64: | Line 111: | ||
This will yield numbers between -100 and 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.<br>To return a whole number use either '''[[round]]''', '''[[ceil]]''' or '''[[floor]]''' together with '''random''':<br> | ||
+ | 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) | ||
+ | <br>x=floor(random 5) will return 0,1,2,3 or 4. (uniform distribution, all numbers have the same probability of being selected) | ||
+ | <br>x=ceil(random 5) will return 0,1,2,3,4 or 5. (0 is very unlikely, but possible, as ceil 0 is 0) | ||
</dd> | </dd> | ||
</dl> | </dl> | ||
<!-- DISCONTINUE Notes --> | <!-- DISCONTINUE Notes --> |
Revision as of 00:51, 17 November 2015
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)