Random Numbers in D Programming Language

Here’s the translation of the random numbers example from Go to D, formatted in Markdown suitable for Hugo:

import std.stdio;
import std.random;

void main()
{
    // For example, uniform(0, 100) returns a random int n,
    // 0 <= n < 100.
    writef("%d,", uniform(0, 100));
    writef("%d", uniform(0, 100));
    writeln();

    // uniform01() returns a float f,
    // 0.0 <= f < 1.0.
    writeln(uniform01());

    // This can be used to generate random floats in
    // other ranges, for example 5.0 <= f' < 10.0.
    writef("%.15f,", uniform(5.0, 10.0));
    writef("%.15f", uniform(5.0, 10.0));
    writeln();

    // If you want a known seed, create a new
    // Random object with a specific seed.
    auto rnd = Random(42);
    writef("%d,", uniform(0, 100, rnd));
    writef("%d", uniform(0, 100, rnd));
    writeln();

    // Using the same seed will produce the same sequence
    // of random numbers.
    auto rnd2 = Random(42);
    writef("%d,", uniform(0, 100, rnd2));
    writef("%d", uniform(0, 100, rnd2));
    writeln();
}

D’s std.random module provides pseudorandom number generation.

The uniform function is used to generate random integers within a specified range. For example, uniform(0, 100) returns a random int n, where 0 <= n < 100.

uniform01() returns a double f, where 0.0 <= f < 1.0.

This can be used to generate random floats in other ranges, for example 5.0 <= f' < 10.0, by using uniform(5.0, 10.0).

If you want a known seed, create a new Random object with a specific seed. This allows for reproducible sequences of random numbers.

Some of the generated numbers may be different when you run the sample.

$ rdmd random_numbers.d
68,56
0.808073179153353
5.840125017402497,6.937056298890035
94,49
94,49

See the std.random module documentation for references on other random quantities that D can provide.