我想生成一个整数随机数,概率分布函数以列表形式给出。 例如,如果pdf=[3,2,1],那么我喜欢 rndWDist(pdf) 返回0、1和2,概率为3/6、2/6和1/6。 我写了我自己的函数,因为我在随机模块中找不到它。在
def randintWDist(pdf):
cdf=[]
for x in pdf:
if cdf:
cdf.append(cdf[-1]+x)
else:
cdf.append(x)
a=random.randint(1,cdf[-1])
i=0
while cdf[i]<a:
i=i+1
return i
有没有更短的方法可以达到同样的效果?在
我看到您关于排除依赖项的说明,这就是为什么您不想使用maven shaded插件。我不确定这对Groovy类的效果如何
(但值得向我自己和其他Java新手明确指出:
maven-jar-plugin
不包括依赖项)第一种可能性:Java之所以会发牢骚,是因为它找不到Groovy,而且真的想要它吗
我发现了一个SO answer about ability to load main classes that extend from dependent classes
我知道一个没有显式类声明的普通Groovy脚本文件compiler wraps that up in a class it extends from (Groovy's) Script。我不知道如果您编写自己的显式类会发生什么-我会打开包。jar并使用Java Decompiler来查看生成的代码,看看这是否为您提供了任何线索
第二种可能性:包名
Groovy为您创建一个类的特性如果您没有显式声明一个类,那么它似乎不能将这个隐式Java类放在基于目录结构的包中。我认为这在过去是有效的:不确定我是否在这里看到一个bug、一个新功能,或者我是否记错了
因此,有两种方法可以解决这个问题:
向Groovy脚本添加
package
声明让maven
mainClass
标记引用没有包名称空间的类(即:GroovyHello
而不是com.example.hello.GroovyHello
相关问题 更多 >
编程相关推荐