要了解Java的基础知识,我需要制作一个程序,可以确定几个皇后区和主教在m x n板上的位置。列,行,皇后区和主教的数量是可变的。必须放置这些部件,使得板上的所有自由位置都可以被至少一件攻击。该计划必须显示一个有效的解决方案和可能的解决方案的数量。
经过一番研究后,我认为回溯是解决方案。我已经实现了放置皇后区的功能。但首先我认为主教可以以相同的方式放置,但经过一些测试后它并没有像我希望的那样有效。皇后区每列都放在一个免费的位置,当你这样做时,它只会给皇后区提供一个很好的解决方案。但是当所有的皇后区都被放置并且你继续为每个专栏的主教,解决方案不是最有效的解决方案。
解决它的另一个想法是计算每位女王/主教最有效的位置。对于每一件你计算它防御的地方数量。这也是一个很好的解决方案,但是当你这样做时,我无法弄清楚如何计算解决方案的总量。当你获得更大的电路板时,执行时间会明显增加。
所以我有点坚持正确的方法解决这个问题......我是否正确地使用其中一个解决方案?或者有更好的方法来解决这个问题吗?
谢谢!