課後練習 2 3

2021-07-27 16:31:06 字數 1449 閱讀 8076

一.

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...