我目前正在尝试自学 C++ 和一般编程。因此,作为一个初学者项目,我正在制作一种遗传算法,为井字游戏创建最佳人工智能。我没有参加任何编程类(class),所以这不是家庭作业。我只是对人工智能非常感兴趣。
所以我试图创建一个阶乘的多维数组,在我的例子中是 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/
关于c++ - 井字棋的阶乘数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9628782/