0的故事
10進制
常用的10進制如:0、1、2、3、4、5、6、7、8、9
逢10進1,1我們讀作一,10我們讀作十一,如數字1125,我們分別從右往左數,5(個),2(十),1(百),1(千),把它寫成一個算式就是下面這樣。
1*1000 + 1*100 + 2*10 + 5*1
2進制
計算機為什么采用2進制
計算機之所以采用2進制是因為2進制的種類比較少,不是0就是1,而10進制的種類就比較多了,不過對于人類來說10進制會被2進制好理解,因為10進制的位數比2進制的位數要少很多,但因為計算機的處理速度非常快,因此它并不在乎你有多少位。
在編程中,計算機會將人類的10進制轉換成2進制,通過2進制進行計算,計算出來的結果再轉換成10進制輸出。
0的作用
1、占位
2、統一標準,簡化規則
3、沒有
4、起點
5、分界點
計數法的作用
當一個數越大就越難分辨它的大小,而計數法的作用就是將大的數分解成一個小的數,使我們能更快的理解。
邏輯
邏輯是消除歧義的工具
很多人都覺得,"邏輯冰冷且機械死板",確實,邏輯有這種特征,但正因如此,它才有用,人類易被感情左右,但計算機不同,正因為它冰冷且機械死板,計算機才會一直穩定地運行,給我們所用。
異或
當A和B都滿足或都不滿足時為false,因為對于某些情況,你不可能同時既是A又是B,它跟或是不一樣的。
在javascript中有一個按位異或運算符 (^),可以用它來實現當只能有一個為真的情況。
var a = 5;
var b = 12;
console.log(a>4 ^ b>10); 0
console.log(a>5 ^ b>10); 1
console.log(a>5 ^ b>12); 0
console.log(a>5 ^ b>10); 1
^ 運算符會查看兩個表達式中二進制形式的值,當且僅當只有一個表達式的某位為 1 時,結果中的該位才為 1。否則,結果中的該位為 0。
蘊含
p→q僅當p為真、q為假時為假,否則為真。
數學歸納法
求1到100的和
(100+1)*100/2
(起始數 + 終止數) * 一共的份數 / 2(因為起始數加終止數需要耗費兩份)
抽象思維和歸納法的背后就是方便重用。
排列組合
植樹問題
在10m的路,每隔1m植一顆數需要多少顆?
需要11顆,起始位也需要一顆。
二分法
一分為2,可以直接過濾掉一半的數據。
總結
1、認清模式
在解答思考題時,我們經常會使用"先用較小的數試算"的方法。用較小的數進行嘗試,可以發現規律、性質、結構、循環、一致性等,認清隱含在問題中的模式(認清模式,進行抽象化)。否則,即使解決了問題,也只是一知半解。
另外,我們還嘗試了"對目前得到的結果進行抽象化"。通過抽象化,可以將結論運用到當前問題以外的其他問題中。如果問題的解法嚴格來說只能夠運用于當前問題,那么這個解法就名不副實。只有同樣能夠運用于其他類似問題的方法,才能稱為解法。
2、由不擅長催生出的智慧
人類擅長某事,正是這些不擅長,催生出了各種閃耀的智慧。
人類不擅長處理龐大的數字,因此在計數法上下了很多工夫,羅馬數字表示法,指數表示法等。
人類不擅長毫無差錯地進行復雜判斷,因此邏輯就誕生了。從此可以通過邏輯表達式進行推論,也可以通過卡諾圖解決復雜邏輯。
人類不擅長管理大量事物,因此進行了分組。將同一組的事物視為同類事物,管理起來就會方便許多。
人類不擅長處理無窮,因此通過有限的步驟處理無窮。
...諸如此類,人類運用智慧,細心鉆研,不斷地挑戰問題。想法設法縮小問題規模,降低復雜度,使問題達到"可以機械式地解決"的狀態。
只要達到這個狀態,就能將接力棒傳至下一位賽跑運動員----計算機。
你有不擅長的地方嗎?那里或許會讓你產生新的智慧,找到新竅門呢!
不含病毒。www.avast.com |
留言列表