algorithm - 我如何评估图形着色谜题的难度?

标签 algorithm language-agnostic graph graph-theory

我正在开发一个基于 HTML Canvas 和 JavaScript 的小型游戏来训练自己,我选择创建一个 map 着色益智游戏。

我最初计划使用给定算法解决难题所需的时间来设置难题难度,但我最终选择实现蛮力求解算法。其他算法对我来说太复杂了,因为我没有找到一些清晰的资源来很好地解释最佳 3 或 4 着色性的算法。

我的问题是可以制作一些棘手的谜题,因此蛮力解决需要很长时间,但使用其他解决方法可能仍然很容易。

那么,您如何确定 map 着色谜题的相对难度?

最佳答案

您的 map 是无向图。顶点是要填充颜色的表面,边是连接邻居的表面。
当每个表面上的邻居数量很少时,一个拼图的难度很低。一个难题是每个顶点都有很多边。
因此,对谜题进行排序的方法就是:

difficulty = total_number_edges - total_number_vertices

一个天真的人。您现在可以通过添加不同的其他变量来改进此公式,例如顶点中的最大边数或顶点总数(因为有很多表面要填充的拼图更难并且需要更多时间)

difficulty = (total_number_edges - total_number_vertices)  
                        * (total_number_vertices / max_edges_in_vertex)

你应该是主公式的发明者:)

关于algorithm - 我如何评估图形着色谜题的难度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5513805/

相关文章:

java - 如何以最快的方式将两个排序数组相交?

java显示范围内的输入

algorithm - 检查一个单词是否由一个或多个串联的字典单词组成

algorithm - 过滤末尾带有数字的字符串(例如 foo12)的最有效方法是什么?

matlab - 给定四分位数,我如何使用 MATLAB、matplotlib、gnuplot 或其他一些软件包绘制盒须?

algorithm - 如何在浏览器中实现电子表格?

algorithm - 二叉搜索树的最小高度插入顺序

language-agnostic - 您在类中允许的最大方法的限制 N 是多少?

python - 在 R 中使用 igraph 绘制图形 : edge length proportional to weight

python - 我如何编写一个 SQLAlchemy 查询来返回图中某个节点的所有后代?