1單選(2分)
以下哪項不是遞迴的三定律之一?
a. 對函式執行結果進行快取
b. 有乙個基本結束條件
c. 演算法呼叫自身
d. 能夠不斷減小問題規模
正確答案:a
3單選(2分)
使用進製轉換函式:
def
tostr2
(n,base)
: convertstring=
'0123456789abcdef'
if n ==0:
return
''return tostr2(n // base, base)
+ convertstring[n % base]
將數字135轉換為三進製「12000」的過程中,函式共被呼叫了多少次(包含初始呼叫)?
a. 4
b. 5
c. 6
d. 3
正確答案:c
4單選(2分)
若定義實心等邊三角形為0階謝爾賓斯基三角,現給定乙個邊長為1的3階謝爾賓斯基三角,請問它的面積更接近以下哪個數字?
a. 0.1370079
b. 0.1826772
c. 0.4330127
d. 0.2435696
正確答案:b
5單選(2分)
以下是使用遞迴方式實現的圓括號匹配函式:
def
match
(s, n=0)
:if s:
if s[0]
=='('
: n +=
1else
: n -=
1if n <0:
return
false
return match(s[1:
], n)
else
:return n ==
0
請問以下哪個輸入中可能出現引數為match("((()))", 3)的函式呼叫?
a. 「(((()((()))」
b. 「((()))(((」
c. 「((()))」
d. 「()((()))」
正確答案:a
6多選(3分)
給定繪製分形樹函式:
def
tree
(branch_len)
: t.pendown(
) t.forward(branch_len)
t.penup(
)if branch_len >5:
t.left(20)
tree(branch_len -5)
t.right(40)
tree(branch_len -5)
t.left(20)
t.backward(branch_len)
其中t為海龜畫筆物件。
在呼叫函式tree(50)時,下列哪些說法是正確的?
a. 樹梢共512個
b. 組成樹的線段共1023條
c. 樹梢距樹根距離為275
d. 樹梢距樹根距離為270
正確答案:a、b、c
7多選(3分)
以下函式用於可用於求方程的近似解,其中引數f為乙個輸入、輸出均為數字的函式
def
solve
(f, x1, x2)
: mid =
(x1 + x2)/2
if f(mid)==0
orabs
(x1 - x2)
<1e-
8:return
# elif f(mid)
* f(x1)
>0:
return
#else
:return
#
如何補全該函式使其可以正常使用?
a.c處應填:mid
b.c處應填:solve(f, mid, x2)
c.c處應填:solve(f, x1, mid)
d.b處應填:solve(f, mid, x2)
正確答案:c、d
8多選(3分)
以下哪些問題可以用遞迴演算法求解?
a. 影象、語義識別
b. 查詢有序列表中某元素是否存在
c. 繪製mandelbrot集的圖形
d. 求斐波那契數列第n項的值
正確答案:b、d
Python資料結構與演算法分析(第2版)閱讀筆記
正文提取碼 fjlk 中序表示式,前序表示式,後續表示式 使用棧這種資料結構來儲存 a b c a 存入列表末端 入棧 b 存入列表末尾 入棧之前,判斷棧裡是否有高於或等於其優先順序的運算子,若有,將其彈出並存到列表末尾,把 存到列表末尾,號入棧 b 存入列表尾部帶括號的情況 a b c d e f...
資料結構與演算法 遞迴演算法(Python版)
一 整數轉換為任意進製 我們用最熟悉的十進位制分析下這個問題 十進位制有十個不同符號 convstring 0123456789 比十小的整數 轉換成十進位制,直接查表 就可以 了 convstring n 想辦法把比十大的整數,拆成一系列比十小的整 數,逐個查表,比如七百六十九,拆成 七 六 九,...
MOOC資料結構與演算法Python版 第六周測驗
1 單選 2分 下列哪個演算法使用到了分治策略?d 2單選 2分 函式值快取最適合使用哪種python中的資料型別?b 3 單選 2分 已知數列g x 滿足 根據遞推式寫出求數列值的遞迴演算法,問原始演算法與採用函式值快取的演算法時間複雜度分別為多少?a 4 單選 2分 博物館大盜問題中,若共有10...