根据机会生成随机数

时间:2016-07-21 20:44:04

标签: elixir

欢迎来到赌场;)

我有一个可能的胜利"数字,例如33.3。

胜率= 33%,所以〜在这种情况下,每第3次掷骰都应该获胜。

另一个例子:数字1应该赢得1/100的机会。

如何使用elixir实现它,如何创建正确的rand func来执行此操作?

2 个答案:

答案 0 :(得分:2)

您可以使用Erlang的random模块:

:random.uniform()

将生成介于0.0和1.0之间的浮点数。低于1/3的任何东西都是“胜利”,高于此值的任何东西都是“失败”。

答案 1 :(得分:0)

创建包含100个元素的列表。 从这个列表中取一个随机元素。

list = [1,2,3,4,5,6,7, ... , 100]
Enum.take_random(list, 1)

Enum.take_random(1..100,1)

Enum.take_random(1..100)

33% - 获取随机元素是< 34。

1/100 - 如果取得随机元素为1则获胜。

从Elixir 1.1起作用。