On Saturday, 3 August 2019 at 16:35:34 UTC, Giovanni Di Maria wrote:
For me the "goodness of random" is NOT important.

If that's the case, you could roll your own RNG:

//DMD64 D Compiler 2.072.2
import std.stdio;
import std.datetime;
import std.array, std.random;

void main(){
    ubyte x;
    auto r = benchmark!(f1,f2)(10_000);
    writeln(r[0]);
    writeln(r[1]);
}

int f1(){
    static s = 10; // Seed
    s = (214013*s+2531011); // [1]
    s = (s>>16)&0x7FFF;
    auto y=(s&7)+1;
    //writeln(y);
    return y;
}

int f2(){
    byte c;
    c=uniform!ubyte() % 8 +1;
    //writeln(c);
    return c;
}


/*
[1] https://software.intel.com/en-us/articles/fast-random-number-generator-on-the-intel-pentiumr-4-processor/
*/

/*
OUTPUT:
TickDuration(65263)   <-f1
TickDuration(635167)  <-f2
*/

Matheus.

Reply via email to