> Erlang中文手册 > uniform_s/2 返回一个随机整数

ranDOM:uniform_s/2

返回一个随机整数

用法:

uniform_s(N, State0) -> {integer(), State1}

内部实现:

%% uniform_s(N, State) -> {I, NewState}
%%  Given an integer N >= 1, uniform(N) returns a random integer
%%  between 1 and N.

-spec uniform_s(N, State0) -> {integer(), State1} when
      N :: pos_integer(),
      State0 :: ran(),
      State1 :: ran().

uniform_s(N, State0) when is_integer(N), N >= 1 ->
    {F, State1} = uniform_s(State0),
    {trunc(F * N) + 1, State1}.

给定一个整数 N(N 是大于等于 1 的正整数)以及一个随机状态 State0, 并返回一个 1 到 N 间的整数和一个新的随机状态 State1.

{MegaSecs, Secs, MicroSecs} = erlang:now(),
State = {MegaSecs, Secs, MicroSecs},
random:uniform_s(5, State).