一.
a. 250000
b. 2046
c. n-1
d. (n+4)(n-1)/2
e. (n-1)n/2*(1+(2n-1)/3)
f. (pow(3,n+1)-3)/2
g. pow((n+1)n/2,2)
h. 1-1/(n+1)
二. a. n的四次方
b. log(n)
c. 2的n次方乘n
d. n*n
三. 用第一種方法
加減運算:n*n+1次;乘法運算:0次;除法運算:n+1次
第二種方法
加減運算:2*n+2次;乘法運算:n+1次;除法運算:2次
四. a.該演算法求的是 1~n的平方和
b.基本操作是:乘法和加法運算
c. 執行了n次
d. o(n)
e. 可以直接使用公式得出答案:s=n*(n+1)*(2n+1)/6
五. a.該演算法求的是數列中最大元素和最小元素的差
b.基本操作是:比較運算
c.執行了n次
d.o(n)
e.可以不必連續兩次判斷。因為兩種情況是互斥的,所以,下面的if可以改寫成 else if。減少比較的次數增加效率。
六. a.判斷這個矩陣是不是對稱矩陣
b.基本操作是:比較運算
c.執行了 n(n-1)/2 次
d. o(n*n)
e. 從定義出發,這個演算法已經是比較次數最少的演算法。所以不可能做到更好了。
八. 開關的總次數是:
n+n/2+n/3+…+1 = n*log2(n+1)
證明如下:
s(n)=1+1/2+1/3+1/4+…+1/n
t(n)=log2(n+1)
顯然當 n=1 時, s(n)=t(n);
s(n)-s(n-1)=1/n
t(n)-t(n-1)=log2( (n+1)/n )
所以只需要證明: 1/n < log2( (n+1)/n )
既證明: 1 < n*log2( (n+1)/n )
顯然成立。
九. 1+2+3+…+n
n+(n-1)+(n-2)+…+1
顯然有
1+2+3…+n = ( (n+1)+(n+1)+…+(n+1) )/2 = (n+1)*n/2
十. 做一張逆序表,兩表相加,每乙個格仔的元素都是 20。
20*100/2 = 1000 就是所求。
十一.
a. o(n*n*n)
b. 重要的缺陷:使用了多重迴圈,並且每層迴圈都有乘法和除法的運算。我暫時還搞不明白執行的機理是什麼。
十二.
第n次的時候,共生成了 2*(n+1)*n+1個格仔
十三.
9*1+90*2+900*3+1*4=2893
課後練習 十八
9 10 匯入restaurant 類 將最新的restaurant 類儲存在乙個模組中。在另乙個檔案中,匯入restaurant 類,建立乙個restaurant 例項,並調 用restaurant 的乙個方法,以確認import 語句正確無誤。分成多個模組,不同模組進行呼叫 restaurant...
課後練習 十九
10 1 python學習筆記 在文字編輯器中新建乙個檔案,寫幾句話來總結一下你至此學到的python知識,其中每一行都以 in python you can 打頭。將這個檔案命名為 learning python.txt,並將其儲存到為完成本章練習而編寫的程式所在的目錄中。編寫乙個程式,它讀取這個...
課後練習一
psp2.1 personal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫30 45 estimate 估計這個任務需要多少時間 3045 development 開發570 630 analysis 需求分析 包括學習新技術 60 des...