なぜこれが起こっているのか、私は少し混乱しています。答えが明らかな場合は申し訳ありませんが、私はまだJavaに慣れていません。そのため、更新するように選択した場合にのみ更新されるように
設定したと思いましたが、何らかの理由で、変更されるたびに更新されます。これがコードです。ご不明な点がございましたら、お気軽にお問い合わせください。int[] returning
temp[]
public int[] generateTable(Graph g, int index, int cap, int[] current, int[] edges, int count) {
int truthAmount = 0;
int result = Integer.MAX_VALUE;
int[] temp = new int[count];
int k = 0;
int[] returning = new int[count];
for(int i = 0; i < Math.pow(2, count); i++){
for(int j = count-1; j>=0; j--){
int num = (i/(int) Math.pow(2, j))%2;
temp[k] = num;
if(temp[k] == 0)
truthAmount++;
k++;
}
if(truthAmount >= cap){
result = FFAHelper(g, temp, edges);
if(result < min){
min = result;
returning = temp;
}
}
k = 0;
truthAmount = 0;
}
return returning;
}
基本的には、0がtrueを表し、1がfalseを表すバイナリテーブルを生成します。trueのカウントが少なくともキャップの量である場合にのみFFAHelperメソッドを実行します(これはすべてグラフ/エッジクラスの場合です。これはグラフ/エッジクラスの従来の設定ではないことを私は知っていますが、私はこのようにすることに同意しなければなりませんでした)したがって、基本的には、truthAmountが少なくともエッジの量でなければFFAHelperに進みません。returning
繰り返しになりますが、問題は、if条件を通過しなくても更新されることです。あなたの助けと時間をありがとうみんな!