Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 设计函数的常数时间算法_Algorithm_Constant Time - Fatal编程技术网

Algorithm 设计函数的常数时间算法

Algorithm 设计函数的常数时间算法,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的功能定义如下:

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 m - 10
   else:
      return 91

也许是动态规划?将m=1到100的结果存储在一个数组中。因此,计算Gm 100的时间总是恒定的。m是负值还是零?我们不应该为你做作业。然而,我会给你们一个很大的提示,你们可以使用基本的算术和离散推理来假设,因为我实际上并没有期望你们完成我的家庭作业。我只是想解释一下到底有人问我什么。编辑:即使有迭代,时间复杂度仍然是O1,因为循环将在有限的时间内运行。这是正确的吗?@MananTyagi:它为所有m值形成一个AP。当我简化时,结果都是91。无论m的值是什么,最终都会到达G101,计算结果为91。因此,此处m的所有值的Gm=91。