- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试解决以下问题:
An mn maze is an mn rectangular grid with walls placed between grid cells such that there is exactly one path from the top-left square to any other square. The following are examples of a 912 maze and a 1520 maze:
Let C(m,n) be the number of distinct mn mazes. Mazes which can be formed by rotation and reflection from another maze are considered distinct.
It can be verified that C(1,1) = 1, C(2,2) = 4, C(3,4) = 2415, and C(9,12) = 2.5720e46 (in scientific notation rounded to 5 significant digits).
Find C(100,500)
现在,有一个给出正确结果的明确公式,而且它是完全可计算的。然而,据我所知,欧拉计划问题的解决方案应该更像是聪明的算法,而不是明确的公式计算。试图将解决方案表述为递归,我只能得到一个线性系统,其中变量的数量随着迷宫的大小呈指数增长(更准确地说,如果有人试图为 mxn 迷宫的数量写一个递归,其中 m 保持固定, 一个线性系统使得其变量的数量随 m 呈指数增长:其中一个变量是具有问题 380 声明中给出的属性的 mxn 迷宫的数量,而其他变量是 mxn 迷宫的数量在某些特定“配置”中接触迷宫边界的多个连接组件 - 并且此类“配置”的数量似乎随 m 呈指数增长。因此,虽然这种方法在 m = 2,3,4 等情况下是可行的,它似乎不适用于 m=100)。
我还想把问题简化为更容易解决的子问题,然后在构建更大子问题的解决方案(动态规划方法)时重用子问题的解决方案,但在这里我偶然发现子问题似乎涉及不规则形状的迷宫,而且这种迷宫的数量在 m,n 中呈指数级增长.
如果有人知道除了使用显式公式或一些特定定理之外的可行方法 (m=100, n=500),并且可以提示去哪里寻找,对我来说这将非常有趣。
最佳答案
这基本上是一个 spanning tree计数问题。具体来说,就是统计一个网格图中生成树的数量。
来自维基百科条目的“计数生成树”部分:
The number t(G) of spanning trees of a connected graph is a well-studied invariant. In some cases, it is easy to calculate t(G) directly. For example, if G is itself a tree, then t(G)=1, while if G is the cycle graph C_n with n vertices, then t(G)=n. For any graph G, the number t(G) can be calculated using Kirchhoff's matrix-tree theorem...
这里有一些与计算网格图中生成树的数量相关的论文或帖子:
Ekhad 和 Zeilberger 的后者提供了以下内容,并提供了与手头问题相匹配的答案:
If you want to see explicit expressions (as rational functions in z) for the formal power series whose coefficient of zn in its Maclaurin expansion (with respect to z) would give you the number of spanning trees of the m by n grid graph (the Cartesian product of a path of m vertices and a path of length n) for m=2 to m=6, the the input gives the output.
具体请参见 output .
旁注:如果没有提供其他建议的解决方案值,则有效的解释可能是迷宫的外部结构很重要。在这种情况下,具有相同路径的两个或多个迷宫将是不同且截然不同的,因为可能有 3 个选项用于在一个角落进入和退出迷宫,其中左上角将在顶部打开,左上角在左侧打开,或在左侧和顶部都打开,拐角导出也类似。如果试图将这些迷宫可能性表示为一棵树,则两个节点可能会在入口处汇聚,而不仅仅是从头到尾发散,并且会有一个或多个附加节点用于导出可能性。这会增加 C(m,n) 的值。
关于algorithm - 计算具有给定大小的非循环路径的不同矩形网格迷宫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15063411/
在 Windows 世界中,什么是正确的名称。具有导出函数的老式 C++ DLL?不是 COM DLL,也不是 .NET DLL。我们以前通过调用 LoadLibrary() 和 GetProcAdd
目前我正在使用javaEE7,我有一个场景如下。在我的 JSF Web 应用程序中,我有一个事件监听器(不是 JSF 事件),当事件调用时,它会执行某些操作,然后将这些信息更新到我的 Web 应用程序
这不是 AJAX 请求/响应回调问题... 我正在使用 Dojo 1.5 构建网格。我正在尝试 dojo.connect具有功能的扩展/收缩按钮。我的问题是 grid.startup()在创建实际 D
非 Webkit Opera 是 very specific在某些功能中,因此通常通过 JavaScript 检测到 the following way . 但是,Opera Next 几乎是 Goo
我已查看以下链接中给出的所有日志,但未能找到 IP 地址: https://developer.couchbase.com/documentation/server/3.x/admin/Misc/Tr
我有一个命令行程序,它根据一组源文件生成一个我想在我的 Android gradle 构建 (A) 中使用的 jar 文件。这个命令行程序只是将一个 jar 文件存储在磁盘上的一个目录中。 我如何创建
下面的 htaccess 命令将所有非 www 转移到 http www RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^
我正在使用自定义链接器脚本将内核镜像分为两部分。第一个是普通代码和数据,第二个是初始化代码和不再需要时将被丢弃的数据。初始化部分也不像内核本身那样在地址空间之间共享,因此如果 fork() 仍然存在(
这个问题在这里已经有了答案: Several unary operators in C and C++ (3 个答案) What is the "-->" operator in C++? (29
假设我有一个类设置如下: class A { public: virtual void foo() { printf("default implementation\n"); } }; c
#include using namespace std; int main(int argc, char *argv[]) { int i=-5; while(~(i)) {
近期,百度搜索引擎变化无常,很多企业站、行业站、门户站、论坛等站点遭到了降权,特别是比比贴分类信息网直接遭到了拔毛,这对于广大站长来说是一种打击,也是各个企业、行业的打击。 至今,很多网站已经恢复
我现在正在使用 IBM TPM v1332 + IBM TSS v1470 并尝试将一些基本关键字/密码存储到 TPM 上的非 volatile 内存中。我找到了两种方法。一种是创建一个密封对象并使用
我的 PHP 脚本中有一个正则表达式,如下所示: /(\b$term|$term\b)(?!([^)/iu 这与 $term 中包含的单词匹配,只要前后有单词边界并且它不在 HTML 标记内即可。 但
我想显示用户名称地址(请参阅 www.ipchicken.com ),但我唯一能找到的是 IP 地址。我尝试了反向查找,但也没有用: IPAddress ip = IPAddress.Parse(th
只有 UI 线程能够显示到屏幕上,还是其他线程也可以这样做? 最佳答案 不,您只能直接从 UI 线程访问 UI,但您可以编码来自其他线程的结果,例如使用 Control.Invoke 或 contro
我正在使用现代 Excel 滚动条(不是旧的 ActiveX 类型,即开发人员 > 插入 > 表单控件 > 滚动条)并且想检测它的值何时更改。我找不到有关此类对象的更改事件的任何信息。您可以在单击时分
当我使用这段代码时 IE 6 确实正确使用了指定的样式表,但所有其他浏览器在应该使用基本上声明的样式表时会忽略这两种样式表,如果您不是 IE,请使用此样式表。 有什么想法吗? 最佳答案 n
我想指定 2 mssql 表之间的关系。 付款类别和付款。 paymentcategory.id 加入 payout.category 列。 在 payout.json 模型中 我指定为外键:id,
我正在尝试制作非 volatile UDF,但似乎不可能。因此,这是我非常简单的test-UDF: Option Explicit Dim i As Integer Sub Main() i = 0
我是一名优秀的程序员,十分优秀!