Pseudo-random numbers/Xorshift star: Difference between revisions
Content added Content deleted
(Added Sidef) |
m (→{{header|Perl}}: added the "next_float" method) |
||
Line 462: | Line 462: | ||
$self->{state} = $state; |
$self->{state} = $state; |
||
($state * 0x2545F4914F6CDD1D) >> 32 & (2**32 - 1); |
($state * 0x2545F4914F6CDD1D) >> 32 & (2**32 - 1); |
||
} |
|||
sub next_float { |
|||
my ($self) = @_; |
|||
$self->next_int / 2**32; |
|||
} |
} |
||
} |
} |
||
Line 472: | Line 477: | ||
say "\nSeed: 987654321, values histogram:"; |
say "\nSeed: 987654321, values histogram:"; |
||
$rng = Xorshift_star->new(seed => 987654321); |
$rng = Xorshift_star->new(seed => 987654321); |
||
$h{ |
$h{int 5 * $rng->next_float}++ for 1 .. 100_000; |
||
say "$_ $h{$_}" for sort keys %h;</lang> |
say "$_ $h{$_}" for sort keys %h;</lang> |
||
{{out}} |
{{out}} |