问题标签 [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.

0 投票
1 回答
849 浏览

knuth - “男人或男孩”高德纳测试如何运作?

谁能解释一下男人或男孩测试如何返回 -67 的值?
我徒劳地试图写下结果,或者用调试器跟踪它。任何帮助,将不胜感激。
可以在此处找到不同实现的列表。

0 投票
3 回答
1266 浏览

c++ - Knuth 置换算法奇怪的行为

我附上了一个代码,它根据 cout 语句给出奇怪的输出。这个程序本质上是计算 Knuth 的排列。

输入说:run1 代码运行第一遍正常:调用跟踪将是:
r un1
ur n1
nur 1
1nur
n1ur
nu1r
nur1
在此代码运行之后,调用正确返回到
urn 1所在的步骤,
但它不处理“RETURN”语句下方的代码。

此外,如果假设循环中有一个 cout 完成排列,它甚至不会在 return 语句下方打印 cout

请让我知道我的代码中是否存在任何基本缺陷或逻辑错误?

谢谢!

0 投票
1 回答
212 浏览

literate-programming - ctwill - cweb 的迷你索引

我在哪里可以下载 ctwill?ftp.cs.stanford.edu/pub/ctwill/ 站点对我不起作用,ftp://labrea.stanford.edu/pub/ctwill/也是如此。

谢谢,拉乌尔

0 投票
1 回答
1071 浏览

c# - 帮助修复我的 KMP 搜索算法

您好,我正在尝试从 C 书中的算法编写一个 C# 版本的KMP 搜索。无法找到我的算法中的缺陷。有人会帮忙吗?

0 投票
0 回答
1659 浏览

functional-programming - Donald Knuth 选择过程式编程而不是函数式编程是否有原因?

Donald Knuth 的计算机编程艺术系列使用了他自己的称为 MIX 的过程汇编语言。现在,问题变成了:Knuth 是否应该使用函数式语言来描述他的算法?TeX 应该用函数式语言编写吗?

计算机具有程序架构。计算的根源是否暗示了最好的分支?

最初的 AoCP 是用 MIX 编写的。更新后的 AoCP 使用了基于更现代架构的 MMIX。

但是,基本点仍然成立。Knuth 从一种程序架构转到另一种……显然不需要函数式编程。

0 投票
5 回答
7797 浏览

c++ - 在 C++ 中生成泊松变量

我实现了这个函数来生成一个泊松随机变量

其中 mrand 是 MersenneTwister 随机数生成器。我发现,当我增加 lambda 时,预期的分布将是错误的,平均值在 750 左右饱和。是由于数值近似还是我犯了任何错误?

0 投票
1 回答
484 浏览

java - 如何更改此 shell 排序中的 H 序列?

我希望能够修改此代码,以便它使用 Knuth 的 H 序列而不是这个。如果有人可以提供帮助,我将不胜感激。

0 投票
2 回答
1483 浏览

algorithm - 较大循环串中的最小循环子串

我正在尝试找到一种算法,该算法可以返回较大循环字符串中最短循环子字符串的长度。

循环字符串将被定义为两个或多个相同字符串的串联,例如“abababab”或“aaaa”......

现在在给定的示例中,字符串 T = "abbcabbcabbcabbc" 有一个模式 "abbc" 的循环,但最短的循环子字符串将是 "bb"。

0 投票
0 回答
190 浏览

exception - MMIX:关于动态陷阱的问题

我对 MMIX 的中断有一些疑问。特殊寄存器 rK 的定义是“中断屏蔽寄存器”。但它似乎以不同的方式对待不同的事件。

  • 对于 I/O 位(我们称之为 ** 位:这是正常情况。当外部中断到来时,如果 rK 的 ** 位为 0,则 rQ 的 ** 位将保持 '1' 直到 rK 的 ** 位设置为 1 , 陷阱就会发生。

  • 对于S-bit(程序):根据源码mmix-pipe,即使rK的S-bit为0,也会发生安全异常。rK 的 S 位将从 0 变为 1。因此,在正地址中,rK 的 S 位应该为 1,而在负地址中,rK 的 S 位没有任何作用。只有 rQ 的 S-bit 用于告诉系统“存在安全问题”,rK 的 S-bit 似乎没有用。

  • 对于 P 位(程序):令人遗憾的是“指令来自特权(负)虚拟地址”。在 mmix-doc.pdf 中。但是如果 PC 处于负地址,rQ 的 P 位不会总是设置为 1。(mmix-pipe 也不会设置 rQ 的 P 位)。
    我可以证明:如果在 "resume" insn 之前执行的所有指令都将 rQ 的 P-bit 设置为 1,那么 resume 也会将 rQ 的 P-bit 设置为 1。结果,在 resume 之后,'user' insn 将始终触发 TRAP。那是不可能的。因此,当 P-exception 被禁止时,rQ 的 P-bit 不会设置为 1。
    因此 rK 的 P-bit 不仅用作掩码,还用作“绕过异常检查的选项”。


这里有一些问题。

  • 为什么不将所有 rK 的位作为中断的掩码?有什么理由让 S/P 位如此奇怪吗?

  • 如果 rK 的对应位为 0,其他 rQ 的程序位 (rwxnkb) 是否设置为 1?

  • 与 Neg-address 一样,不会发生跳闸,DVWIOUZX 位在它刚刚发生后是否保持 1?

0 投票
0 回答
4811 浏览

c - Mastermind 的 Donald Knuth 算法

我正在研究用于 Mastermind 的 Donald Knuth 1977 算法(此处)。我已经实施了一些步骤,但我不知道如何计算每个可能的分数将被消除的可能性数量。

你有什么办法吗?

谢谢。

编辑:我是用 C 做的。它不是现实中的 Mastermind,而是 Bulls & Cows,但它是一样的。