演算法導論 習題 5 4 1

2021-05-25 15:26:43 字數 534 閱讀 4662

題:

乙個房間裡必須要有多少人,才能讓某人和你生日相同的概率至少為1/2?必須要有多少人,才能讓至少兩個人生日為7月4日的概率大於1/2?

解:1.假設一年有n(365)天,房間裡面有x人(不算自己)

為求某人與自己生日相同,可求其反面,即房間裡面沒人跟自己生日相同,他們每個人生日可以在n天中選擇除去我生日剩下的n-1天

pr= (n-1)/n;

pt = iipr (i = 1,2,...x);

pt = pr ^ x;

故: 1 - pt >= 1/2;

1 - (364/365) ^ x >= 1/2;

2. 假設一年有n(365)天,房間裡面有x人(算自己)

至少兩個人生日為7.4,其反面為至多1個人生日為7.4

p = p0 + p1             //p0 為沒有人生日7.4,p1為只有一人生日7.4

p0 = (n-1/n) ^ x;

p1 = c(1,x) * 1/n * (n-1/n) ^ (x-1);

求解以上得x.

演算法導論 習題 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...

演算法導論 習題2 1 4

有兩個各存放在陣列a和b中的n位二進位制整數,考慮它們的相加問題。兩個整數的和以二進位制形式存放在具有 n 1 個元素的陣列c中。請給出這個問題的形式化描述,並寫出偽 以下是我寫的c 如有錯誤請指出 include stdafx.h include include define n 20 using...