演算法導論習題(python)Chapter One

2021-07-03 14:25:03 字數 1206 閱讀 6842

#algorithm chapter one

# 1-2-2 答案:27

importmath

definsertsquence(x):return8*x*xdefmergersquence(y):return64*y*math.log(y)forninrange(2,100):ifinsertsquence(n) > mergersquence(n): n= str(n) print("從"+n+"開始插入排序開始劣於歸併排序")break
# 思考題1-1 答案:overflowerror

importmath

x=1000 #1秒

y=60*x

z=60*y #一小時

w=24*z #一天

m=30*w #乙個月

n=365*w#一年

t=100*n#乙個世紀

timesquence=[x,y,z,w,m,n,t]

for i in timesquence:

print("lgn的值:")

print(math.log(i))

print("√ ̄n的值:")

print(math.sqrt(i))

print("n的值:")

print(i)

print("n√ ̄n的值:")

print(i*math.sqrt(i))

print("n平方的值:")

print(math.pow(i,2))

print("n立方的值:")

print(math.pow(i,3))

print("2的n次方的值:")

print(math.pow(2,n))

print("n的階乘的值:")

print(math.factorial(n))

留下的疑問:怎麼去解決計算過程中計算結果精度不夠的問題(或者計算規模太大,記憶體不夠)

演算法導論 習題 5 4 1

題 乙個房間裡必須要有多少人,才能讓某人和你生日相同的概率至少為1 2?必須要有多少人,才能讓至少兩個人生日為7月4日的概率大於1 2?解 1.假設一年有n 365 天,房間裡面有x人 不算自己 為求某人與自己生日相同,可求其反面,即房間裡面沒人跟自己生日相同,他們每個人生日可以在n天中選擇除去我生...

演算法導論 習題 6 5 8

題 請給出乙個時間為o nlgk 用來將k個已排序鍊錶合併為乙個排序鍊錶的演算法。此處n為所有輸入鍊錶中元素的總數。k個已排序鍊錶,假設每乙個鍊錶的第乙個元素為root i i 1,2,3.k 那麼可以為這k個元素root i 構造乙個最小堆heap min,其時間複雜度為o lgk 此時堆頂元素假...

演算法導論 習題5 2 2

首先我們有三個觀察結論 1 1號助理總是會被雇用 2 最佳助理 即rank為n的助理 總是會被雇用 3 最佳助理不可能是1號助理,因為那樣將只能剛好雇用一次。在使hire assistant剛好雇用兩次的序列中,一號助理必然有rank i n 1,所有rank在 i 1.n 1 區間內的助理必然在r...