uniform

Generates a number between a and b. The boundaries parameter controls the shape of the interval (open vs. closed on either side). Valid values for boundaries are "[]", "$(LPAREN)]", "[$(RPAREN)", and "()". The default interval is closed to the left and open to the right. The version that does not take urng uses the default generator rndGen.

Parameters

a T1

lower bound of the uniform distribution

b T2

upper bound of the uniform distribution

Return Value

Type: auto

A single random variate drawn from the uniform distribution between a and b, whose type is the common type of these parameters

Examples

1 auto rnd = Random(unpredictableSeed);
2 
3 // Generate an integer in [0, 1023]
4 auto a = uniform(0, 1024, rnd);
5 assert(0 <= a && a < 1024);
6 
7 // Generate a float in [0, 1)
8 auto b = uniform(0.0f, 1.0f, rnd);
9 assert(0 <= b && b < 1);
10 
11 // Generate a float in [0, 1]
12 b = uniform!"[]"(0.0f, 1.0f, rnd);
13 assert(0 <= b && b <= 1);
14 
15 // Generate a float in (0, 1)
16 b = uniform!"()"(0.0f, 1.0f, rnd);
17 assert(0 < b && b < 1);

Create an array of random numbers using range functions and UFCS

import std.array : array;
import std.range : generate, takeExactly;

int[] arr = generate!(() => uniform(0, 100)).takeExactly(10).array;
assert(arr.length == 10);
assert(arr[0] >= 0 && arr[0] < 100);

Meta

Suggestion Box / Bug Report