- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以我对我应该“发明”/“发现”的算法有疑问。这是一种计算 2^(n) - 1 为 Ө(n^n) 和 Ө(1) 和 Ө(n) 的算法。
我想了好几个小时,但我找不到两个任务的解决方案(第一个,最后一个是最简单的 imo,我在下面发布了算法)。但是我不够熟练,无法“发明”/“找到”一个非常慢和非常快的算法。
到目前为止我的算法是(在伪代码中):
为 Ө(n) 的那个
int f(int n) {
int number = 2
if(n = 0) then return 0
if(n==1) then return 1
while(n > 1)
number = number * 2
n--
number = number - 1
return number
一个简单且有点明显的使用递归的方法,虽然我不知道它有多快(如果有人能告诉我那会很好):
int f(int n) {
if(n==0) then return 0
if(n==1) then return 1
return 3*f(n-1) - 2*f(n-2)
}
最佳答案
n
不受任何常量限制(并且输出不应该是简单的 int
,而是可以包含大整数的数据类型以允许它)- 那里是没有算法在 Ө(1)
中产生 2^n -1
,因为输出本身的大小是Ө(log(n))
,所以如果我们假设有这样的算法,让它在恒定时间内运行并进行小于 C
的操作,对于 n =
2^(C+1)
,你只需要C+1
操作来打印输出,这与 C
是上限的假设相矛盾,所以没有这样的算法。Ө(n^n)
,如果您有更高效的算法(例如 Ө(n)
),您可以创建一个额外运行的无意义循环n^n
次迭代并且不做任何重要的事情,这将使您的算法 Ө(n^n)
。Ө(log(n)*M(logn))
算法,使用exponent by squaring ,然后简单地从这个值中减去 1。此处 M(x)
是包含 x 位数字的乘法运算符的复杂度。关于java - 甚至有 2^(n) - 1 的算法位于 Theta Ө(1) 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809032/
它是 f(n)=theta(h(n)) 因为 theta 是可传递的。但是谁能解释为什么 h(n)=theta(f(n))。 最佳答案 通过定义扩展 Big-O 符号通常会使事情变得简单。 关于alg
在 Andrew Ng 进行机器学习 MOOC 时,他理论上解释了 theta'*X 为我们提供了假设,而在做类(class)时我们使用 theta*X。为什么会这样呢? 最佳答案 theta'*X
我正在阅读算法导论并尝试完成书中的练习。 练习 4.1-3 4.1-3 Implement both the brute-force and recursive algorithms for the
这是假设函数 h(x)=theta 0 + theta 1(x)将 theta 0 的值为 0,theta 1 的值为 0.5 后,如何将其绘制在图表上? 最佳答案 这与我们绘制线性方程的方式相同。让
所以我的问题是如何制作极坐标图 r = f(theta)对于一个函数f通过计算r获取一系列 theta 值,然后转换 r使用方程将 theta 和 theta 转换为笛卡尔坐标 x = r cos(t
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 9 年前。 Improve
我们的教授和各种资料都说 Summation(n) = (n) (n+1)/2,因此是 theta(n^2)。但直觉上,我们只需要一个循环就可以找到前 n 项的总和!所以,它必须是 theta(n)。
我们使用 Ө-notation 来写插入排序的最坏情况运行时间。但是我无法将 Ө-notation 的属性与插入排序联系起来,为什么 Ө-notation 适用于插入排序。对于所有 n>=n0,插入排
log n^2 等同于 2logn,它以与 logn 相同的速率增长,因为我忽略了因子和常量。但是,如果我要对整个项进行平方,以便得到 (logn)^2,它是否也是 logn 的大 theta? 最佳
有没有办法证明 f(n) + g(n) = theta(n^2) 还是不可能?假设 f(n) = theta(n^2) & g(n) = O(n^2) 我尝试了以下方法:f(n) = O(n^2) &
这看起来微不足道,但我无法解决。我想将 Theta 增加 15 度。但是,内部是按弧度计算的。所以这就是我所做的 if ( m_a > PI ) m_a = m_a - 2*P
我无法找到某些类型代码的 theta,例如。 for(i=1;i=1;j=j/3){ .... } } 如何找到上述代码的 theta。 如果有人帮助我在一般情况下如何找到它,那将非常有帮助。 f
对于运行时间为 (cn) 的函数!其中 c 是系数 >= 0 且 c != n,运行的紧界是 Θ(n!) 还是 Θ((cn)!)?现在,我相信它会是 Θ((cn)!),因为它们会相差一个系数 >= n
for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { for (int k = 0; k < 5; k++)
这是我需要分析的代码: i = 1 while i 。它显然与 i 本身一样多。因此,如果 i 的值为 256,那么您将执行 j = j + 1 多次。 因此,完成的总工作量是 i 在外循环执行中所采
有一些书说 theta 表示法称为平均情况,而另一些则说 theta 不是平均情况。如果theta不是平均情况,那么在算法方面什么叫平均情况? 最佳答案 O、Ω 和 Θ 符号实际上与算法的最佳/平均/
Theta 符号的简单英语解释是什么?使用尽可能少的正式定义和简单的数学。 theta 表示法与大 O 表示法有何不同?谁能用通俗易懂的英语解释一下? 算法分析中有怎么用到的?我很困惑? 最佳答案 如
我一直在尝试生成 Newton's method Jacobi theta functions 的分形-- 我对 mpmath 的尝试需要很长时间,所以我尝试用 C 进行编码。 用于生成以下图像的来源
这是 Python 入门级编码类(class),因此请简单介绍术语,因为我们只是在迈出一小步。这是我正在尝试工作的 for 循环。 g=9.81 h0=1 radians=pi*thetas(j)/1
作为学期的一部分,我们正在使用 C 进行编程,这是一个座谈会测试问题的示例: unsigned f(unsigned n) { if(n<=1) return 1; return f(n-2)+f(n
我是一名优秀的程序员,十分优秀!