将 C++ 函数翻译成 Java
Translate C++ function to Java
首先很抱歉,如果问题很基础,但我不是 C++ 专家。
我正在研究 Java 中的遗传算法,我来到这个 link,其中包含有趣的信息:http://web.archive.org/web/20100216182958/http://fog.neopages.org/helloworldgeneticalgorithms.php
但是,我完全不明白这个方法在做什么:
int fitness(bool* chromosome)
{
// the ingredients are: 0 1 2 3 4 5 6
// salt sugar lemon egg water onion apple
return ( -chromosome[0] + chromosome[1] + chromosome[2]
-chromosome[3] + chromosome[4] - chromosome[5]
-chromosome[6] );
}
出于学术目的,我试图将 C++ 程序 "translate" 转换为 Java,但我不明白这种方法,究竟返回了什么? (我假设它使用数组进行操作。)
它正在返回一个整数。布尔值在 added/subtracted 在一起之前被转换为整数。真为1,假为0。
这是 Java 的翻译。在我们的例子中,我们必须自己将布尔值转换为整数。
int fitness(boolean[] chromosome)
{
int[] intChromosome = toInt(chromosome);
// the ingredients are: 0 1 2 3 4 5 6
// salt sugar lemon egg water onion apple
return ( -intChromosome [0] + intChromosome [1] + intChromosome [2]
-intChromosome [3] + intChromosome [4] - intChromosome [5]
-intChromosome [6] );
}
int[] toInt(boolean[] values) {
int[] integers = new int[values.length];
for (int i = 0; i < values.length; i++) {
integers[i] = values[i] ? 1 : 0;
}
return integers;
}
首先很抱歉,如果问题很基础,但我不是 C++ 专家。
我正在研究 Java 中的遗传算法,我来到这个 link,其中包含有趣的信息:http://web.archive.org/web/20100216182958/http://fog.neopages.org/helloworldgeneticalgorithms.php
但是,我完全不明白这个方法在做什么:
int fitness(bool* chromosome)
{
// the ingredients are: 0 1 2 3 4 5 6
// salt sugar lemon egg water onion apple
return ( -chromosome[0] + chromosome[1] + chromosome[2]
-chromosome[3] + chromosome[4] - chromosome[5]
-chromosome[6] );
}
出于学术目的,我试图将 C++ 程序 "translate" 转换为 Java,但我不明白这种方法,究竟返回了什么? (我假设它使用数组进行操作。)
它正在返回一个整数。布尔值在 added/subtracted 在一起之前被转换为整数。真为1,假为0。
这是 Java 的翻译。在我们的例子中,我们必须自己将布尔值转换为整数。
int fitness(boolean[] chromosome)
{
int[] intChromosome = toInt(chromosome);
// the ingredients are: 0 1 2 3 4 5 6
// salt sugar lemon egg water onion apple
return ( -intChromosome [0] + intChromosome [1] + intChromosome [2]
-intChromosome [3] + intChromosome [4] - intChromosome [5]
-intChromosome [6] );
}
int[] toInt(boolean[] values) {
int[] integers = new int[values.length];
for (int i = 0; i < values.length; i++) {
integers[i] = values[i] ? 1 : 0;
}
return integers;
}