【发布时间】:2022-08-23 19:17:15
【问题描述】:
我看到围绕这个练习还有其他一些问题,但没有一个具体是在询问提示中的含义......\"以这样的方式定义状态转换,即产品抗体n各州不变\".
他们还提到,这种使用“不变量”的想法对于“迭代算法”来说是一个强大的想法。顺便说一句,这个问题需要设计一个“对数”指数算法,其空间复杂度为O(1).
主要是我不知道这个提示是什么意思,我很困惑。谁能帮我解释一下这是什么意思?我唯一能真正找到的关于“不变量”的东西是用物理学中的例子来描述的,这只会使这个概念更加不透明。
完整的练习描述:
练习 1.16:设计一个过程迭代的使用连续平方并使用对数步数的求幂过程,
fast-expt也是如此。 (提示:使用观察(乙n/2)2=(乙2)n/2, 与指数一起保持n和基地b,一个额外的状态变量一个,并定义状态转换,使得产品抗体n从一个州到另一个州是不变的。在开始过程的一个被认为是1, 答案由一个在结尾的过程。一般来说,定义一个不变量剩下的不变从状态到状态是思考迭代算法设计的有效方式。)
提前致谢。
-
你需要描述练习,我们不知道练习 1.16 要求什么。
-
对此感到抱歉 - 在上面添加
-
假设 X = b^n(使用 n 的初始值)。最初,当 a=1 时,X=a(b^n)。如果你反复从 n 中减去 1 并将 a 乘以 b,你最终会得到 n=0,这样 X=a(b^n)=a。现在假设您将 n 分成两半;你需要对 a 做些什么来保持 X=a(b^n) 为真?
-
因此,对于每次迭代,如果我们减去 1,a 最终将 = a(b^n),而我们在每次迭代中对 a 所做的只是将 a * b 相乘。如果 n 是偶数并且我们在每次迭代中将 n 除以 2,我们将...平方 a?
-
我想我只是不知道他们所说的“产品与状态没有变化”是什么意思——这对我来说现在感觉非常神秘。
标签: recursion iteration scheme sicp