Seven-sided dice from five-sided dice: Difference between revisions

Updated D entry
(Update)
(Updated D entry)
Line 420:
 
/// Generates a random number in [1, 5].
int dice5() /*pure nothrow*/ @safe {
return uniform(1, 6);
}
 
/// Naive, generates a random number in [1, 7] using dice5.
int fiveToSevenNaive() /*pure nothrow*/ @safe {
immutable int r = dice5() + dice5() * 5 - 6;
return (r < 21) ? (r % 7) + 1 : fiveToSevenNaive();
Line 434:
minimizing calls to dice5.
*/
int fiveToSevenSmart() @safe {
static int rem = 0, max = 1;
 
Line 457:
}
 
void main() /*@safe*/ {
enum int N = 400_000;
distCheck(&dice5, N, 1);