问题标签 [knuth]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 使用内存操作将 MMIX 程序集中的最低有效位设置为 0 的目的?
在 MMIX 机器mmix-doc第 3 页第 4 段的文档中:
我们使用该符号来表示由 从 location 开始的连续字节组成的数字。(符号 表示将 k 的最低有效 t 位设置为 0,并且只保留结果地址的最低 64 位。...
c# - 在函数中评估 Knuth 的箭头符号
我在计算Knuth 的箭头符号时遇到了问题,它是 ↑,可以在函数中找到。到目前为止我所做的是:
有力量
但它的值不正确,我无法找到解决它的方法。它可以处理 1 个箭头问题,例如3↑3(即3^3 = 9),但它不能处理更多的箭头。
我需要一种方法来找出更多箭头,例如3↑↑3,
应该是7625597484987 (3^27)我得到19683 (27^3)。如果您能帮助我弄清楚如何获得正确的输出并解释我做错了什么,我将不胜感激。
algorithm - Knuth 算法 X 用于限制块大小的精确覆盖
著名的精确覆盖问题算法由 Donald Knuth 给出,称为 Knuth's Algorithm X。
假设输入是{ab, ac, cd, c, d, a, b}
。是否有可能使 Knuth 的算法 X 能够根据某些预定义的块大小给出输出。例如,如果{2, 2}
是块大小设置,它会给出输出:{ab, cd}
,如果{2,1,1}
是块大小设置,它会给出输出:{ab, c, d}
,{ac, b, d}
和{cd, b, a}
。
algorithm - 实际应用中的精确覆盖问题有哪些示例?
在计算机科学中,精确覆盖问题是确定是否存在精确覆盖的决策问题。确切的覆盖问题是 NP 完全问题[1],是卡普的 21 个 NP 完全问题之一。[2] 精确覆盖问题是一种约束满足问题。
我一直在阅读精确封面问题的示例,例如 n-queens、数独等,但似乎无法理解问题如何精确。
algorithm - 输入输出受限双端队列
如何证明使用输入受限双端队列的递增序列的排列数等于使用输出受限双端队列的排列数?在 Knuth 的“计算机编程的艺术”中,给出了输入受限排列 x 和“x 的逆反转的rev”之间存在一对一的映射,后者可以通过 ORD 获得。如何证明用ORD可以得到?
assembly - MIX DIV 运算符,以及压缩字节数的转换
我正在阅读 Knuth 的The Art of Computer Programming,我对 MIX 汇编语言有疑问,尤其是 DIV 运算符。
在第 133 页,他给出了一个示例,说明 DIV 运算符如何影响累加器和扩展寄存器,给定这些寄存器的特定状态,以及输入存储单元。这篇 Stack Overflow 帖子描述了这个问题(我想也回答了这个问题):MIX 中的除法如何工作?
我的问题是回答的人使用我不明白的方法将存储在 rAX(寄存器 A 和 X)中的 10 字节字的值转换为一个数字:
如果您手动进行除法,通过将字节转换为单个数字,您将得到 -210,501,825(如果您使用的是最小的字节 - 在 Knuths 书中是 6 位(!))
有人可以指导我完成这种转换吗?
谢谢,山姆
java - Java:如何实现 Dancing Links 算法(使用 DoublyLinkedLists)?
我正在尝试用 Java 实现 Knuth 的 Dancing Links 算法。
根据 Knuth 的说法,如果x
是一个节点,我可以通过 C 中的以下操作完全取消链接一个节点:
并通过以下方式恢复取消链接:
我在主要方法中做错了什么?
如何在 Java 中实现取消链接和还原?
这是我的主要方法:
这是 DoubleLinkedList 类:
java - 长代码的主谋算法
我目前正在实现knuths mastermind 算法 但我想创建一个 mastermind 程序,其中代码的长度最多为 15。并且不同颜色的数量也是 15。
所以我对上面算法中提到的种子 S 有疑问。当我想创建一个具有所有可能性的 Seed S 时,Seed 将有 15^15 个条目。这是 4,378938904×10¹⁷。这太多了,无法处理。
有人知道如何以 15^15 种可能性实现 knuth 算法吗?
c - Donald Knuth Dancing Links 特殊指针实现
现在我正在研究我的 D.Kuth DLX 算法/数据结构的实现。
我知道什么是确切的封面以及 Dancing links 的工作原理。但我对他的论文有一个问题:
在第 5 页,他描述了算法的实现。在那里,他的“数据对象 x”节点具有指向相关列头部的列对象的“C 字段”。但我不完全理解他为什么需要它以及他如何使用它?“列对象”的“C 文件”也是如此。
hash - 散列 - M 应该是 2 的幂
我听说 m 应该是 knuth 乘法哈希中的 2 的幂。否则,二的幂总是一个不错的选择。有人可以简单地告诉我为什么这样做更有效吗?
亲切的问候