【发布时间】:2014-05-06 16:00:27
【问题描述】:
在 Apache commons Math 中有一个类 Mean。我想避免每次我想计算平均值时都实例化一个对象。经过进一步检查,我发现了一个类 StatUtils,它有一个静态函数,可以计算双精度 [] 的平均值。 现在我想评估高斯函数。我找到了一个高斯类。但是我还是不想每次我想评估函数时都实例化一个对象。是否有类似于 StatUtils 的类,具有用于评估高斯函数的静态函数。
我考虑实例化一个 Mean 类型的全局对象来访问 mean 函数,而不必实例化多个 Mean 对象,但是当我发现 StatUtil 时,我更喜欢这种方法。对于高斯问题,即使是全局对象也是不可接受的,因为构造函数需要均值和 sigma 参数。因此,我仍然需要为每个分布实例化一个新对象。
我正在寻找的是这样的:
double y = gaussian(x, mean, sigma);
总结一下。
- 是否有静态函数来评估高斯函数。
- 是否存在驱动我缺少的 Apache Math 库设计的软件设计问题。使用静态函数的 StatUtils 或 Java.Math 方法是否有问题。
【问题讨论】:
-
为什么不想实例化一个对象? Java 是一种面向对象的语言。实例化对象就是你在 Java 中所做的事情!
-
java.math只包含不需要状态的非常简单的函数。Gaussian类包含状态,并以面向对象的方式对状态进行若干操作。 -
回复 Erwin Bolwidt 的评论。您对高斯物体状态的评论是一个很好的观点。这就解释了为什么某些函数作为静态函数有意义。至于为什么我想避免在 Mean 的情况下创建对象似乎没有必要,
-
对不起,我的最后一条评论没有完成。我不打算批评 apache 的设计。我不清楚与状态(均值和西格玛)作为参数传递的静态函数设计相比,该设计的优势。
标签: java math static-libraries apache-commons gaussian