-
Notifications
You must be signed in to change notification settings - Fork 0
Cracking the Code Interview Study Group 11
edwardyi edited this page Feb 2, 2018
·
2 revisions
>> 幾個例題(數字分解)
>> 質數分解(Prime)
>> 最大公因數、最小公倍數
>> 質數的定義:只能被一與自身整除的數,經典算法
>> 找小於120的質數(先找2)
>>> 先做一個表格(砍2的倍數、砍n的倍數)
>>> 第一個保留,之後的砍掉
>> A和B是交集,A發生的情況下發生B(B given A)
>> 證明公式是對的
>> 必須完全獨立、互斥(A發生B絕對不會發生mutual exclusivity)
>>> 範例:是男的就不是女的
>> 兩根繩子可以兩頭燒
>>> 2分之一(30分鐘)=> 另一個2分之一(15分鐘)
>>> 用減法(問題拆解)
>>> 先將一條繩子兩頭與另一條繩子其中一頭一起點燃,按熄之後,再把剩下那一條繩子兩頭一起燒
>> 8X8的棋盤切對角
>>> 是否還有辦法填滿所有棋盤?
>>> 塗上顏色解題
>> 人口控制問題
>>> 只要生女生就停止,最後男女比例為何?
>>> 最後男女比例依然相同
>> egg drop problem
>>> 最少的次數
>>> 防震墊(一般性的解答,機率P)
>>> 沒有說機率,需自己假設
>> 毒液測試
>>> 一次滴很多瓶
>>> binary search
>> 系統:讓電腦易操作(設定)
>> 應用軟體
>> 電腦原本甚麼東西都不會,需要透過Bios來處理
>> 看的到都是硬體(軟體是看不見的)
>> 要放在IC上面(程式放到CPU去運算,只有這個功能而已)
>>> OS:Windows、Linux
>>> BIOS:右邊滑的訊號(控制多品牌)
>>>> 各種品牌(往上告訴作業系統)
>>>> 底下很多東西都不是標準
>>>> 機械動作轉化(一個標準)
>>> H/W
>>>> 各種品牌
>>> S/W:螢幕鍵盤滑鼠都不會動
>> Basic Input Output system
>> 黑黑的、Logo(Asus)=>Windows
>> 所有硬體初始化(讓他可以動)
>> 螢幕鍵盤滑鼠(偵測當前有多少硬碟、有沒有滑鼠、鍵盤、相關訊息)
>> 接手看到開啟視窗(作業系統接手)
>> 使用者角度不一定知道他在做甚麼(不知道怎麼應用)
>> 和下層溝通不需要很深奧的演算法
>> CPU本身和顯示卡可以超頻
>> 頻率越快,執行越快(CPU透過一定頻率再做事)
>> 2.3Mmz(一個clock一個同步,一個指令)
>> 現在電腦可以做很多事(核心)
>> 拿資料,做計算後放到記憶體儲存起來
>> 一個clock做一個動作(或好幾個一組的動作)
>> 頻率越高做越快(2.3萬個指令)
>> 雙核或四核(同時間可以做四個事情)
>> 超頻把CPU的頻率調快(出廠的時候有最高的頻率可以去跑)
>> 震盪率(會從CPU讀出來)
>> 最快2.3Mmz(把頻率家更快)
>> 買一台機車,上限120,可能會壞掉(縮缸)
>> 2.7MMz(100%),不會壞掉,但可能會當掉(過高,過熱)
>> CPU加速機制、自我保護機制(各種機制)
>> 電腦有保護機制
>>> 超過九十度(自己要想辦法散熱)
>>> 主機板鎖住,不讓程式跑(一般溫度60度)
>>> 電競賽的電腦(水冷,自己兜solution)
>>> 可以賣給你電腦,也有相對應的散熱機制(風散卡灰塵了)
>>> 容易掛掉(沒有壞但會跑不下去)
>> 專門繪圖(用簡單指令,就可以畫出東西)
>> GPU有他的頻率和功能(超頻)
>> 電壓越來越大(非常燙燙)
>> 散熱片(一分鐘關機)
>> 分開的黏上去(接觸空氣快速散熱)
>> 顯微鏡放大鏡看還是有空隙(上下密合,快速導熱)
>> 風吹,帶走熱氣(上面加旋轉風散)
>> 非常精密,塞很多東西進去(幾奈米製成)
>> 不均勻和太厚(無法散熱)
>> 離得比較遠(無法導熱,本身沒有散熱)
>> 空氣會擋住散熱(十分鐘自己關機)
>> CPU本身很小(散熱一大包)
>> memory、cache(server)運算能力強(CPU和桌上型不同)
>> 不一樣需求做區隔,不知道差再哪裡,用需求買電腦(錢花得多,但不一定買到需求)
>> notebook省電(CPU跑比較慢)
>> desktop(要跑得快)
>>> 速度可以跑很快,但資料不一定正確(影像攝影機)
>>> 資料丟失沒關係
>> server(資料一點不能錯,要穩定,功能不一樣)
>> 現在按甚麼鍵(按了A)
>> DOS、windows 95/98
>> 看狀況支援
>> 和BIOS類似(買來的時候不知道是甚麼作用,賣硬體)
>> 買東西附一個驅動程式(光碟片來安裝)
>> 認滑鼠(A公司的驅動程式去控制滑鼠)
>> BIOS不做事(100樣東西,50樣東西可能不能用需要驅動程式)
>> 變成標準就不用安裝了(新的作業系統就會按照標準設計出來)
>> 頭也變標準(知道怎麼控制硬硬體)
>> 電競滑鼠特殊按鈕,廠商自己做的
>> 越用用多,速度越來越慢(負擔越大)
>> 安裝的時候,50樣驅動,20樣東西要安裝,但是之後不用了,也不會刪掉
>> 每個驅動程式會用到一些CPU一些時間(重新安裝)
>> 把既有的程式裝回來
>> 做的很少(其實沒做甚麼事情),舊的介面還在用
>> 100個功能,只有20~30個用
>> 從硬碟抓資料(可以執行作業系統)
>> 滑鼠的某一些部份(簡單開機要用的東西)
>> 硬體越做越複雜,不一樣的東西一樣要靠BIOS來做
>> 機種多(notebook),不同尺寸不同BIOS(資料不一樣)
>> 硬碟和硬體都不一樣(鍵盤不一樣、觸控板)
>> 全部的不一樣(開機的部分少不掉)
>> 讓作業系統感覺一樣
>> 板子支援哪幾種CPU(只能某些CPU)
>> 記憶體做多可以接多少個(256M、4G)
>> 硬碟可以裝driver來彌補(有限制的)
>> 開機用的硬碟(C磁碟機,事先支援)
>> 電腦沒有硬碟(必須有標準規格,遠端開機功能,網路找到作業系統程式來開機BIOS支援)
>> 特殊方法讀到遠端的地腦開機,當初設計有考慮到功能就有辦法做到(再認的範圍內可以)
>> 各式各樣的藍芽去測試(API)
>> 標準(兩端)不同Protocol
>>> 1.0、1.2(不一定會通)
>>> 無線(閩南語、南部發音;北部發音)
>> 把大廠牌的已經試過很多種狀況(訊號差一點)
>> 號稱是哪一個規格,不一定符合(某種程度認證,相容性比較好)
>> 花錢測試各種裝置(安規)