我目前正在尝试自学一般的C++和编程。因此,作为一个初学者项目,我正在制定一种遗传算法,为井字游戏创建最佳的AI。我没有参加任何编程类(class),所以这不是家庭作业。我对AI真的很感兴趣。

因此,我正在尝试创建阶乘的多维数组,以我的情况为9! 。例如,如果您获得3分之一!它将是array [3] [6] = {{1,2,3},{1,3,2},{2,3,1},{2,1,3},{3,2,1 },{3,1,2}}。基本上是3个!或3 * 2 * 1将是您可以按顺序排列3个数字的方式。

我认为该解决方案应该很简单,但是却一直试图找出如何提出一个简单的解决方案。我试图交换它们,试图将它们右移,递增等等。有效的方法是显而易见的方法,我不知道如何编写它们。

因此,如果您知道如何解决它,那就太好了。如果您可以提供更好的编码格式。任何帮助表示赞赏。

我也用C++编写代码。

最佳答案

您可以使用STL的next_permutation函数

http://www.cplusplus.com/reference/algorithm/next_permutation/

10-07 13:20