原创 一家過橋

題目: 小明一家過一座橋,過橋時是黑夜,所以必須有燈。現在小明過橋要1秒,小明的弟弟過橋要3秒,小明的爸爸要6秒,小明的媽媽要8秒,小明的爺爺要12秒。 每次此橋最多可以過兩人,而過橋的速度依過橋最慢者而定,而且燈在點燃30秒後就會熄滅

原创 我這樣清空緩衝區

清空緩衝區的必要性: 若緩衝區是在棧內分配是的則不需要手動清除,因爲系統會幫你做完成這個工作,但是如果緩衝區分配在堆內的話就要自己手動清除了,不然會發生內存泄露。產生的問題就是佔用的資源不能及時釋放,從而影響系統性能。 清理緩衝區的三種

原创 I/O複用及編程模型

原文:I/O多路複用和Socket 由於IO操作涉及到系統調用,涉及到用戶空間和內核空間的切換,所以理解系統的IO模型,對於需要進入到系統調用層面進行編程來說是很重要的。 阻塞IO和非阻塞IO 從程序編寫的角度來看,I/O就是調用一個或多

原创 飛機加油

題目: 每個飛機只有一個油箱, 飛機之間可以相互加油(注意是相互,沒有加油機) 一箱油可供一架飛機繞地球飛半圈, 問題:爲使至少一架飛機繞地球一圈回到起飛時的飛機場,至少需要出動幾架飛機?(所有飛機從同一機場起飛,而且必須安全返回機場

原创 兩個桶分油

題目: 一桶有10L的油,以及3L和7L的空桶,怎麼分出5L和5L。 思路: 10L 3L 7L桶的變化過程如下: 10 0 0 -> 7 3 0 -> 7 0 3 -> 4 3 3 -> 4 0 6 -> 1 3 6 -> 1 2 7

原创 扔雞蛋

題目: 兩個軟硬程度一樣的雞蛋,它們在某一層摔下會碎,有個100層的建築,要求最多用兩個雞蛋確 定雞蛋安全下落的臨界位置,給出臨界位置?如果是n層樓,m個雞蛋,請給出確定臨界位置的算法 思路: 用動態規劃做: 用F[n]表示n層樓最少

原创 linux中各種頭文件

sys/types.h:數據類型定義   sys/socket.h:提供socket函數及數據結構   netinet/in.h:定義數據結構sockaddr_in   arpa/inet.h:提供IP地址轉換函數   netdb.h

原创 初識BSD

BSD 維基百科,自由的百科全書 BSD(Berkeley Software Distribution,伯克利軟件套件)是Unix的衍生系統,1970年代由伯克利加州大學開創。BSD用來代表由此派生出的各種套件集合。 BSD 常被當作工

原创 初始Linux

Multics計劃   上個世紀六十年代,那個計算機還沒有很普及,只有少數人才能使用,而且當時的計算機系統都是批處理的,就是把一批任務一次性提交給計算機,然後就等待結果。並且中途不能和計算機交互。往往準備作業都需要花費很長時間,並且這

原创 Ubuntu 內核升級

Ubuntu 16.04用戶要如何升級到最新的Linux Kernel 呢? 下面我們以Linux Kernel 4.10爲例說一下步驟。 首先我們在升級到最新內核前應該先了解下它的特性,我們應該做到儘可能的瞭解我們計算機。 Linux

原创 開關和燈

題目: 有4個開關控制4盞燈,怎樣進房間一次就可以辨別出開關和燈的對應關係。 方法: 開關編號1 2 3 4 先打開1和2號一段時間,然後關掉2號,打開3號,迅速進入房間,根據不亮的兩盞燈可以確定2號和4號,根據開着燈的溫度可以確

原创 天平分鹽

題目: 有一個天平,2克和7克砝碼各一個。如何利用天平砝碼在3次內將140克鹽分成50,90克兩份。 方法一: 第一次:先稱2+7=9g鹽 第二次:再稱2+7+9=18g鹽 第三次:左邊放7g砝碼+18g鹽,右邊放2g砝碼+xg鹽,

原创 小白鼠試藥

題目: 有1000瓶水,其中有一瓶有毒,小白鼠只要嘗一點帶毒的水24小時後就會死亡,至少要多少隻老鼠才能在24小時時鑑別出哪瓶水有毒? 思路: 可以用二進制來解決這個問題。 給1000個瓶分別標上如下標籤(10位長度): 0000000

原创 磁盤讀寫之磁盤騙了我?

我們總是想如何將自己磁盤空間能得到最大化的利用,即去掉無用文件。畢竟磁盤也就這麼大(我的磁盤空間爲50G)。 Linux: 你有過鬼迷心竅的時候嗎?突然心血來潮,想將你的磁盤寫滿。 寫滿,寫滿磁盤,天吶!感覺恐怖! 方法一: 先來認識下

原创 Ascii完整碼錶

ASCII碼錶 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUL 32 (space) 64 @ 96 、 1