目前,我正在尝试开发图灵机。它应该接受一个序列 k、x1、x2、...、xn,其中 k 是正整数,对于每个 i,xi 是非负整数作为输入。所有数字都将以 的形式编码a^k b a^x1 b a^x2 b ..... b a^xn
。
对于输出,它应该输出第k个元素的值。
例如:如果我的输入是 aaababaaaaabaa(k = 3, 第一个元素 = 1, 第二个元素 = 5, 第三个元素 = 2)
在这种情况下,图灵机应将输出显示为 aa(2)。我目前面临的问题是,我不知道如何跟踪数字 k,因为没有计数器/内存来存储值 k。此外,即使我跟踪了第 k 个元素,我也不知道如何输出该值
我曾尝试使用标记符号技术,即每次从 k 中读取 a 时,它都会将其写为 A 并向右查找 b。如果找到 b,则将其写为 B 并返回查找 A。在这种情况下,我可以跟踪每个 A 和 B(我的想法就像用每个 b 取消每个 a)。但最后,当没有更多的 A 和 B 时,我不知道如何转到第 k 个元素并输出值。
希望有人能帮助我。
p/s: 我正在使用 Tuatara 模拟器
谢谢。