Algorithm 设计函数的常数时间算法
这个问题刚刚掠过我的脑海: Gm的功能定义如下: a如果m 100,则Gm=m–10Algorithm 设计函数的常数时间算法,algorithm,constant-time,Algorithm,Constant Time,这个问题刚刚掠过我的脑海: Gm的功能定义如下: a如果m 100,则Gm=m–10 根据上述问题,我如何设计一个计算Gm的常数时间算法?假设m适合整数变量,b部分显然可以在常数时间内计算 问题需要证明的棘手部分是a部分是常数。然后是O1时间。这可以通过数学归纳法或其他方式来实现 归纳证明如下 首先观察G101的定义等于101-10=91 对于90=1。证明了归纳法的正确性 Python中计算G的恒定时间算法示例: def G(m): if m > 100: return
根据上述问题,我如何设计一个计算Gm的常数时间算法?假设m适合整数变量,b部分显然可以在常数时间内计算 问题需要证明的棘手部分是a部分是常数。然后是O1时间。这可以通过数学归纳法或其他方式来实现 归纳证明如下 首先观察G101的定义等于101-10=91 对于90=1。证明了归纳法的正确性 Python中计算G的恒定时间算法示例:
def G(m):
if m > 100:
return m - 10
else:
return 91
也许是动态规划?将m=1到100的结果存储在一个数组中。因此,计算Gm 100的时间总是恒定的。m是负值还是零?我们不应该为你做作业。然而,我会给你们一个很大的提示,你们可以使用基本的算术和离散推理来假设,因为我实际上并没有期望你们完成我的家庭作业。我只是想解释一下到底有人问我什么。编辑:即使有迭代,时间复杂度仍然是O1,因为循环将在有限的时间内运行。这是正确的吗?@MananTyagi:它为所有m值形成一个AP。当我简化时,结果都是91。无论m的值是什么,最终都会到达G101,计算结果为91。因此,此处m的所有值的Gm=91。