我使用Python2.7.12;我正在学习的算法书使用Python 3。直到现在,我发现我可以很容易地将大多数算法转换为Python 2,但是这个平方根函数,使用牛顿定律,仍然无法实现。
下面是代码,在其最初的Python 3中。
def square_root(n):
root = n / 2 #initial guess will be 1/2 of n
for k in range(20):
root = (1 / 2) * (root + (n / root))
return root
下面是在Python2.7.12中调用函数时的错误:
pri
谁能检查一下这段代码,告诉我为什么for循环会变得无限?我需要一双全新的眼睛。谢谢!
var routeData = [{"id":1,"c1_id":43,"c2_id":56,"cost":20,"c1_x":658,"c1_y":68,"c2_x":568,"c2_y":149,"owned":false},{"id":2,"c1_id":27,"c2_id":56,"cost":2
int main() {
int i, a[N];
// initialize the array
for(i = 2; i < N; i++) a[i] = 1;
for(i = 2; i < N; i++)
if(a[i])
for(int j = i; j*i < N; j++) a[i*j] =0;
// pirnt the primes less then N
for(i = 2; i < N; i++)
if(a[i
我正在阅读算法书中的扩展欧几里得算法,由Sanjoy在下面链接第33页。
假设我们希望计算11^-1 mod 25。利用扩展的欧几里德算法,我们发现了15 * 25 - 34 * 11 = 1。减少双方模25,我们有-34 * 11同余等于1模25。So -34同余等于16 mod 25是11 mod 25的逆。
我的问题是,作者如何得出结论:"-34同余等于16 mod 25是11 mod 25的逆。“之前的声明。
下面是增加键操作的伪代码,假设我们使用的是Max-heaps
if key < a[i]
then return an error, because key is less than the current key
else
a[i] = key
while i > 1 and a[parent(i)] < a[i]
swap a[i] with a[parent(i)]
i <- parent(i)
根据cormen算法书,如果我使用的是最大堆,我不能减少键,但是是什么阻止我这样做呢?我知道if条件不会让我减少密钥。
它保证了max-heap的属性。
这个假设有什么问