根据给定概率密度函数生成随机数的python模块

PDRandom的Python项目详细描述


自述文件
Ken Leung的PDrandom
麻省理工学院许可证(MIT)
版权所有(c)2015 Ken Leung
更新1.0.2####
新功能:
1.支持多处理
对于函数:randlist、getcountlist、gencountlist、outputrawlandom、outputguncountlist,
您可以设置参数nproc=num_of_process
例如gen.outputgencountlist(int(1e6),[100100],“cosine2”,nproc=4,foption='a')
**对于Windows用户,您应该使用if name=“u u u main”启动程序:

2.您可以追加现有的数据文件
设置附加选项'a'
*对于追加countlist文件,binnum应该与该文件匹配

3.新函数:gencountlist(number,binnum,nproc=1)--直接生成并返回countlist

其他:整理

*任何错误,请通过电子邮件或github告诉我

信息=======
根据概率函数生成随机数,例如sin(x)、cos(x)、sin(x)sin(y)
f:r^n->;r

逻辑/方法:
采用拒收方法,阶跃函数作为约束函数


如何使用:
***对于维度1(多变量函数),请传递列表参数

1.定义概率密度函数,例如
定义测试(输入):
返回abs(数学sin(输入))

*如果是多变量函数,请传递列表参数。例如
二维函数的测试([1,2])。


2.创建pdrandom对象
ranobject=pdrandom.pdrandom(测试,下边界,上界,numdiv,numsubdiv,维度)

测试:密度函数
#
下边,上边:x[下边,上边]
对于尺寸1:x0_[Lowerbound[0],Upperbound[0]),x1_[Lowerbound[1],Upperbound[1]),…………
#

数量=1。numdiv增加->;拒绝率降低(即增加随机数的接受机会)。
但较大的numdiv会导致性能下降
*此参数与性能(速度)有关
#
NySudiDIV(可选):用于求除法中的最大值,与精度和初始化时间有关。
例如1000或[10,10,10]
#
维度:指定输入变量的数量

3.您可以使用一些类函数:
next():返回一个随机数

randlist(num):返回随机数列表

获取计数列表(binnum,randlist):
计算箱子(分区)范围内的随机数

包括下半部分,包括上半部分

参数:
binnum:将范围划分为binnum bins
randlist:由randlist生成(num)

返回一个countlist,例如[bin1x,bin1y,count],[bin2x,bin2y,count]……]对于双变量函数
例如randlist=[1.1,2.4]lowerbound=0,upperbound=5,binnum=5,dimension=1
计数列表=[[0,0]
[1,1]1.1计入1
[2,1]2.4计算为2
[3,0]
[4,0]

总共5个箱子

output countlist(countlist,filename):输出到文件名为(space sperate格式)的文件

outputrawlandom(数字,文件名):为文件名为

outputgencountlist(number,binnum,filename):生成并直接输出计数列表

#===================================================================

示例:
1维外壳:
定义余弦(输入):
返回abs(数学cos(输入))
gen=pdrandom.pdrandom(余弦,-1,math.pi,10,维数=1)
发电机输出计数表(100000,50,“consine2”)

n-尺寸大小写:n>;1
定义INE3(输入):
返回abs(math.sin(输入[0])*math.sin(输入[1])*math.sin(输入[2]))
gen=pdrandom.pdrandom(sine3,[-1,0,1],[math.pi,math.pi,math.pi],[10,10,10],尺寸=3)
lis=gen.randlist(1000个)
打印(gen.getcountlist([10,10,10],lis))
发电机输出计数表(100000,[50,50,50],“sine3”)


其他:
联系方式:devyat1192002@gmail.com
如有任何问题、错误、意见,请随时与我联系,我会尽快回复

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在reducer中迭代自定义可写组件时出现java问题   属性文件中属性的java命名约定   任务链关闭的java Executor服务   java从Eclipse中的字段生成多个构造函数   java通过继承读取Json   java在不知道密钥的情况下解析json   java camel cxf如何在电子邮件中发送soap请求响应   java程序似乎跳过了if语句的一部分,在移回正确位置之前先移到else语句   测试简单的Java加密/解密inputFileName不存在   java从Jenkins REST API获取所有作业的所有构建的构建细节   java基本包装器和静态“类型”类对象   在WebSphere8.5上部署java代码   java对象相等(对象引用“=”)   java MongoDB整型字段到枚举的转换   每次我重新导入gradle时,IntelliJ都会不断重置Java设置   类型使用键或索引从Java中的数据类型检索值   在Java的列表接口中需要listIterator()和iterator()是什么?