演算法導論裡關於隨機演算法的兩道題

2021-04-30 05:40:50 字數 363 閱讀 1785

1. random(a, b)方法返回乙個介於a與b之間的整數,每個整數出現的機會相等。描述random(a, b)的一種實現,它只呼叫random(0, 1)。

設方法random01()以等概率返回0或1

int random(int a, int b)

int d;

//對每一位分別呼叫random01()

do } while(d <= c);

return (a + d);}

2. 希望以各1/2的概率輸出0和1。使用乙個輸出0或1的方法biased-random。它以概率p輸出1,以概率1-p輸出0,其中0int random()

if(a ==0 && b == 1) }}

兩道面試演算法題

最近面試 兩道演算法題 說難不難 要寫全對也不容易 很慚愧 我沒有一次寫對 第一道 無序int陣列 找到中位數 void swap int a,int b int get kth number vector num,int k,int start,int end 一次劃分結束 index i if ...

兩道貪心演算法題

假設有n項物品,大小分別為s 1 s 2 s i sn 其中s i為滿足1 s i 100的整數。要把這些物品裝入到容量為100的一批箱子 序號1 n 中。裝箱方法是 對每項物品,順序掃瞄箱子,把該物品放入足以能夠容下它的第乙個箱子中。請寫乙個程式模擬這種裝箱過程,並輸出每個物品所在的箱子序號,以及...

兩道String演算法題賞析

今天leecode看到了道初級演算法題。感覺思維很精妙。特此記錄下來以供學習使用 242.有效的字母異位詞 字母異位詞就是兩個字串的字母相同,個數相同,順序可以不管。我的思維就是 使用map統計每乙個字母的個數,然後遍歷兩個map。進行對比。兩個map的巢狀遍歷,時間複雜度o n 空間複雜度是o n...