假设我有一个功能,f(x,y)但y参数是可选的.设置y为可选参数的首选方法是什么?一个适合我的选择:
function f(x, y=nothing)
# do stuff
if y == nothing
# do stuff
else
# do stuff
end
# do stuff
end
Run Code Online (Sandbox Code Playgroud)
但这是首选方式吗?我无法将y单个默认值设置为在计算中使用,因为有许多计算在y没有任何情况时以不同方式完成.我也可以只有单独的功能f(x),f(x,y)但这似乎是太多的代码重复.
我正在寻找一种方法来生成一组具有指定均值和标准的整数.偏差.
使用随机库,可以生成一组以高斯方式分布的随机双打,这看起来像这样:
#include <tr1/random>
std::tr1::normal_distribution<double> normal(mean, stdDev);
std::tr1::ranlux64_base_01 eng;
eng.seed(1000);
for (int i = 0; i < N; i++)
{
gaussiannums[i] = normal(eng);
}
Run Code Online (Sandbox Code Playgroud)
但是,对于我的应用程序,我需要整数而不是双精度.所以我的问题是,你如何生成相当于上面但是整数而不是双打?一种可能的路径是以某种方式将双打转换为整数,但我不知道随机库如何工作以了解是否可以以真正保留钟形和均值/标准的方式完成.偏差.
我应该提到这里的目标不是随机性,因为它是获得一组特定大小的整数,具有正确的均值和标准.偏差.
理想情况下,我还想指定可以产生的最小值和最大值,但即使是双打也没有找到任何方法,所以对此也提出任何建议.