random:uniform_s/1
返回一个随机浮点数
用法:
uniform_s(State0) -> {float(), State1}
内部实现:
%% uniform_s(State) -> {F, NewState}
%% Returns a random float between 0 and 1.
-spec uniform_s(State0) -> {float(), State1} when
State0 :: ran(),
State1 :: ran().
uniform_s({A1, A2, A3}) ->
B1 = (A1*171) rem ?PRIME1,
B2 = (A2*172) rem ?PRIME2,
B3 = (A3*170) rem ?PRIME3,
R = B1/?PRIME1 + B2/?PRIME2 + B3/?PRIME3,
{R - trunc(R), {B1,B2,B3}}.
给定一个随机状态 State0, 并返回一个0.0 到 1.0 间的浮点数 float() 和一个新随机状态 State1.
{MegaSecs, Secs, MicroSecs} = erlang:now(),
State = {MegaSecs, Secs, MicroSecs},
random:uniform_s(State).