Java 爪哇城市与色彩

Java 爪哇城市与色彩,java,eclipse,recursion,colors,Java,Eclipse,Recursion,Colors,问题在于你必须解决一个问题,即存在n个城市和n种颜色,每个城市都有一种颜色,但相邻的城市不能有相同的颜色。 老师发了这篇作业来调查如何解决它,我们正在研究java-eclipse,我们很困惑。你能帮我们说清楚吗,非常感谢。最后一个主题是递归。 P.D:有些人说它是通过图形来解决的,但我们不确定,我们也不太了解。如果我是你,我会为它做两个循环,一个在另一个里面,像这样: for (i = 0; i < n_cities; i++) { for (j = 0; j < n_colou

问题在于你必须解决一个问题,即存在n个城市和n种颜色,每个城市都有一种颜色,但相邻的城市不能有相同的颜色。
老师发了这篇作业来调查如何解决它,我们正在研究java-eclipse,我们很困惑。你能帮我们说清楚吗,非常感谢。最后一个主题是递归。
P.D:有些人说它是通过图形来解决的,但我们不确定,我们也不太了解。如果我是你,我会为它做两个循环,一个在另一个里面,像这样:

for (i = 0; i < n_cities; i++)
{
  for (j = 0; j < n_colours; j++)
  {
  }
}
for(i=0;i
这样,您将能够行走所有可能的组合。在第二个循环中,如果citie i周围的城市有相同的颜色,您必须进行比较,如果没有,请尝试使用下一种颜色,这适用于所有n次迭代

如何知道相邻城市的颜色是否相同?好的,你可以创建一个n向量,你将保存所有城市的所有颜色。向量的位置可以是i-citie,保存在该位置的值可以是该citie的颜色


我希望它会对您有用:)

可能有很多解决方案,但首先想到的是有一个包含CityColor实例的ArrayList。我的CityColor类保存城市名称和颜色。添加到ArrayList时,需要检查以确保ArrayList的相邻元素没有相同的颜色。如果颜色相同,则使用递归选择另一种颜色,直到获得可接受的颜色

您的ArrayList将包含以下对象:

public class CityColor {

private String city;
private String color;

public CityColor(String city, String color) {
    this.city = city;
    this.color = color;
}

// set/get methods for the variables

}

如果你有一个颜色数组,你可以使用Math.Random来选择一个随机颜色。如果颜色与相邻的颜色相匹配,则使用递归选择另一种颜色。

如果有n个城市和n种颜色,您不能只为每个城市绘制不同的颜色吗?不,因为可能存在不使用相同颜色的城市