8 puzzle 可解性测试案例错误

我有一个3乘3的拼图。要知道它是否可以解,我需要计算逆序对的数量。如果逆序对的数量是偶数,那么它是可以解的。我在网上找到了一段示例代码:

https://gist.github.com/caseyscarborough/6544636

他提到 { 1, 0, 3, 7, 2, 5, 8, 4, 6 } 是可解的。但我的计算结果却不同。我有 (10,32,72,75,74,76,54,84,86)。因此,在这种情况下逆序对的数量是9,这是一个奇数,所以不可解。

我用代码测试了另一个案例 (3,0,7,6,8,2,1,4,5)。它给我了 (30,31,32,62,61,64,65,76,72,71,74,75,82,81,84,85,21),即17个逆序对。所以它是不可解的,但代码却说它是可解的。

我是否犯了什么错误?还是代码中有错误?


回答:

你的方法略有错误。假设0是空白方块,你在计算逆序对时应该忽略它。

做出这一改变后,你的两个例子中都会少算一个逆序对,所以两者都是错误的。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注