Problem polega na zastosowaniu mapy podzielonej na regiony wyrażonej w macierzy sąsiedztwa i przy użyciu czterech kolorów, kolor mapy tak, aby żadne dwa przylegające regiony nie miały tego samego koloru. Będziemy używać matrycy przyległości do kodowania granic regionu, na którym innym obszarze. Kolumny i wiersze macierzy są regionami, podczas gdy komórki zawierają 0, jeśli dwa regiony nie sąsiadują ze sobą, a granice 1, jeśli mają granicę . Utwórz rekurencyjne rozwiązanie do przechwytywania, które akceptuje jako interaktywne dane wejściowe od użytkownika liczbę regionów na mapie i nazwę macierzy sąsiedztwa wyrażającą makijaż mapy.Algorytm rekursywny dla czterobarwnego twierdzenia
Problem, na który napotykam, polega na tym, że pierwsza wartość w countryColor została zmieniona, ale wiele wartości w tablicy nigdy się nie zmienia.
private static final int[] color = {1,2,3,4};
//this color array is meant to represent 4 colors like red, blue, green, orange etc.
private static int[][] map = {{0,1,1,0,1,1,0},{1,0,0,1,1,0,1},{1,0,0,1,1,1,0},{0,1,1,0,1,0,1},{1,1,1,1,0,0,0},{1,0,1,0,0,0,1},{0,1,0,1,0,1,0}};
//this is the adjacency matrix showing which countries are next to each other
private static int[] countryColor = new int[7];
//this is the array that holds the color values for each country
private static boolean colorMap(int country){
System.out.println("Checking Country "+ country);
boolean check;
for(int j= 0;j< countryColor.length; j++){
if(useColor(country,color[j]) == true)
countryColor[country] = color[j];
if(country == countryColor.length-1)
return true;
check = colorMap(country+1);
System.out.println(check);
if(check == true)
return true;
countryColor[country]=0;
}
return false;
}
private static boolean useColor(int country, int color){
for(int i = 0; i < map.length;i++){
if(map[country][i] == 1&& countryColor[i]==color){
System.out.println("Nah country " + country +" cant be "+color);
return false;
}
}
return true;
}
można udostępnić oświadczenie problemu –
jestem brakuje czegoś, czy też przypadkowo odwrócić swój komentarz do tablicy kolorów i macierz sąsiedztwa? – jpriebe
Dołączyłem problem i naprawiłem komentarze. –