【发布时间】:2017-02-23 20:40:27
【问题描述】:
我想生成双数 [-25,+25] 但它对我不起作用! 我使用了这段代码:
//=============== method set random individuals (genes)======================
public void rand_gene() {
double rand = new Random().nextDouble();
for (int i=0 ;i<size;i++) {
this.setGene(i, -25+(rand));
System.out.print(genes[i]+" ");
} }
我想在昏迷后将其四舍五入为 2 个数字。
有什么帮助吗?
【问题讨论】:
-
您想要高斯分布?您正在生成的是均匀分布。另外,高斯分布是没有界的,所以你想要一个截断的高斯分布吗?最后,“将其四舍五入为 2 个数字”是什么意思?您的意思是要从 {-25.00, -24.99, -24.98, ..., +24.98, +24.99, +25.00} 中选择值吗?
-
我正在为进化策略算法生成正态分布,是的,我的意思是 [-25.00,....,+25.00 ]
-
你想如何处理正态分布的无限尾?你想在 +/- 25 处截断吗?您希望分布的均值和标准差是多少? (我假设 0 均值,但如果你要截断,那么这里根本没有关于标准差的信息,也没有关于均值的保证。请提供你需要的全部细节。)
-
我正在尝试编写进化策略 (1+1) ES,这意味着为 [1, n] 中的 i 生成一个带有 ri~ N(0, sigma^2) 的随机向量 r球体适应度函数 sum xi^2 ,我的范围是 +/-25。
-
我已经用 nextdouble() 创建了随机向量,我想将每个向量与另一个包含 sigma 的随机向量关联起来,nextGaussian() 尊重范围
标签: java evolutionary-algorithm