`

Erlang--随机数

阅读更多
1、普通随机
random:uniform(N)


2、以时间为种子(这是比较常见的一种做法)但是会出现一个问题:如果两个函数同一时刻去调用;或者一个函数循环递归调用,产生的随机数就不可靠了。
random:seed(erlang:now())
random:uniform(N)


3、通过crypto:strong_rand_bytes(N)生成种子。N是字节数,1Bytes=8Bit,
下面例子中,12个字节,那么12*8=96,二进制解析时,就分成3等份,每份32,当然,
你也可以随意分
<<A:32,B:32,C:32>> = crypto:strong_rand_bytes(12)
random:seed(A,B,C)或random:seed({A,B,C})
random:uniform(N)


4、创建一个随机种子进程,为每个访问的调用进程提供不同的种子(如果不采用上面第三种方法,就可以采用这个)。如果有特殊要求:比如A,B进程同时取随机数,由于随机种子更新的算法是一样,所以会有可能A,B随机出来的数值基本相同。
Seed = {random:uniform(9999),random:uniform(9999),random:uniform(9999))
将Seed保存到进程字典或者ets(建议用ets,因为可以直接跨进程取数据,其它进程不用通过call或者异步方式来获取Seed)
random:seed(Seed)
random:uniform(N)
分享到:
评论

相关推荐

    用matlab产生 erlang分布的随机数,两种方法

    在MATLAB中,我们可以利用不同的函数或技巧来生成服从Erlang分布的随机数。以下是两种常用的方法: **方法一:`gammavariate`函数** MATLAB中的`gammavariate`函数实际上是调用了C语言库的实现,可以生成伽马分布...

    erlang-rand-compat:Erlang随机数兼容性库

    Erlang随机数兼容性库 该项目允许您生成一个兼容性模块,公开rand和random的公共子集API。 它意在用作要在可能具有或不具有新rand模块的Erlang / OTP安装上运行的项目中的迁移帮助器。 它通过使用rand如果可用)或...

    Matlab Erlang分布随机数.zip

    本教程是针对本科和硕士级别的教研学习设计的,通过MATLAB2019a版本来探讨如何生成Erlang分布的随机数。 Erlang分布有两个参数:形状参数k(事件发生的次数)和率参数λ(单位时间内事件发生的平均频率)。其概率...

    quickrand:快速的Erlang随机数生成

    提供random_wh82作为random模块的替代产品,该模块计划在Erlang / OTP 20中删除。 建造 rebar compile 作者 迈克尔·特鲁格(Michael Truog)(protonmail dot com上的mjtruog) 谢谢 Raimo Niskanen(Box-Muller...

    ERLANGB.rar_matlab例程_Visual_C++_

    开发者可能使用循环或者向量化操作来处理不同话务量的场景,并通过内置的随机数生成器模拟呼叫到达的随机性。 另一方面,Visual C++可能是用于构建用户界面或与MATLAB进行交互的工具。通过MATLAB编译器(如MATLAB ...

    各种分布随机数生成源码

    本文将深入探讨C语言实现的各种分布随机数生成,包括均匀分布、指数分布、正态分布和Erlang分布。我们将讨论这些分布的特点、应用以及如何在C语言中实现它们。 1. **均匀分布**:均匀分布是一种连续概率分布,其...

    Erlang编写的生成一注双色球小程序

    在这个双色球小程序中,Erlang的独特特性和内置函数(BIFs,Built-in Functions)被巧妙地利用来实现随机数生成和链表操作。 1. **随机数生成**: 在Erlang中,生成随机数主要依赖于`rand`模块。这个小程序可能...

    Erlang Varification:模拟出生死亡过程和Erlang varification-matlab开发

    1. **随机数生成**:Matlab提供了丰富的随机数生成函数,如`rand`和`randn`,用于模拟随机的呼叫到达和结束时间。 2. **状态空间建模**:定义系统可能的状态(例如,空闲状态和服务中的呼叫数量),并计算每个状态...

    Erlang B+C_Source code

    Erlang B+C 源代码是用于模拟和分析通信系统中呼叫处理能力的软件工具。Erlang 是一种衡量电话交换系统话务量的单位,由丹麦工程师 A.K. Erlang 在20世纪初提出。它在电信工程中被广泛使用,用于预测和规划网络容量...

    inet-enacl-dist:一个dist模块,用类似的inet_tls_dist替换了Vanilla Erlang不安全的inet_tls_dist,但是另一个dist_util模块使用了更安全的哈希函数和随机数生成器

    inet-enacl-dist 一个dist模块,它用类似的inet_tls_dist替换了Vanilla Erlang不安全的inet_tls_dist,但另一个dist_util模块使用了更安全的哈希函数和随机数生成器。

    CPN工具性能分析中的随机分布函数介绍

    5. erlang(n:int, r:real):生成埃朗分布的随机数,参数n是阶段数,r是每阶段的平均服务时间。 6. exponential(r:real):生成指数分布的随机数,参数r是率参数。 7. normal(n:real, v:real):生成正态分布的随机数,...

    夏宇闻老师的讲稿

    - `$dist_erlang`:产生一个埃尔朗分布的随机数。 - `$dist_exponential`:产生一个指数分布的随机数。 - `$dist_normal`:产生一个正态分布的随机数。 - `$dist_poisson`:产生一个泊松分布的随机数。 - `$dist_t`...

    数字信号处理c语言程序集.pdf

    - **爱尔朗分布(Erlang)的随机数**:爱尔朗分布是伽玛分布的一种特例,常用于排队理论。 - **贝努里分布的随机数**:贝努里分布是最基本的离散概率分布,适用于描述只有两种可能结果的实验。 - **泊松分布的随机数...

    数字信号处理c语言程序集

    1.9爱尔朗(Erlang)分布的随机数 1.10贝努里(Bernoulli)分布的随机数 1.11贝努里—高斯分布的随机数 1.12二项式分布的随机数 1.13泊松(Poisson)分布的随机数 1.14ARMA(p,q)模型数据的产生 1.15含有...

    统计分布生成函数库

    "统计分布生成函数库"是一个专门为这些目的设计的C语言工具,它提供了多种常见概率分布的实现,使得开发者能够轻松地在他们的项目中生成符合特定统计分布的随机数。 首先,我们来详细了解一下这个库中包含的几种...

    通信网理论实验报告【2.指数型随机变量相关分布函数验证】1

    - 计算Y和Erln,即多个X的累加和,其中Y对应于Erlang分布,Erln对应于n个独立指数分布之和。 - 对生成的数据进行统计分析,计算均值和方差,并绘制累积分布函数图表,对比统计值与理论值。 程序流程中,使用for...

    Verilog HDL入门教程.pdf

    - **$dist_erlang**:埃尔朗分布。 - **$dist_exponential**:指数分布。 - **$dist_normal**:正态分布。 - **$dist_poisson**:泊松分布。 - **$dist_t**:t分布。 - **$dist_uniform**:均匀分布。 以上内容覆盖...

    matrex:ElixirErlang的快速矩阵库,使用CBLAS C实现

    在填充有随机数的3000×3000矩阵上执行操作。 您可以使用python numpy_bench.py和MIX_ENV=bench mix bench命令从/bench文件夹运行基准测试。 NumPy benchmark iterations average time logistic_cost() 1000 ...

Global site tag (gtag.js) - Google Analytics