1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 DAVID MALAN:歡迎回來,大家好。 3 00:00:01,790 --> 00:00:05,030 所以昨天,你會記得, 我們針對這些主題在這裡。 4 00:00:05,030 --> 00:00:08,380 因此,我們有四個首要topics-- 隱私,安全和社會; 5 00:00:08,380 --> 00:00:11,960 互聯網技術;雲計算; 最終,Web開發。 6 00:00:11,960 --> 00:00:14,170 >> 沒有人有 帶寬或時間 7 00:00:14,170 --> 00:00:16,900 觀看小約翰 奧利弗昨晚? 8 00:00:16,900 --> 00:00:20,120 這其實很有趣, 如果不是有點恐怖。 9 00:00:20,120 --> 00:00:24,700 對任何事情有任何疑問 我們昨天做? 10 00:00:24,700 --> 00:00:27,600 任何澄清? 11 00:00:27,600 --> 00:00:35,580 要做出任何疑問 相信我們觸及到今天以某種形式? 12 00:00:35,580 --> 00:00:37,300 所以洗涮。 13 00:00:37,300 --> 00:00:38,760 >> 那麼什麼是上了議事日程今天? 14 00:00:38,760 --> 00:00:41,301 因此,我認為我們今天會開始 一起來看一下什麼是一般 15 00:00:41,301 --> 00:00:44,460 被稱為在計算thinking-- 簡單化的風險,思考 16 00:00:44,460 --> 00:00:46,636 像一台計算機,也許 想著像一個工程師, 17 00:00:46,636 --> 00:00:48,510 並試圖開始 組織你的想法 18 00:00:48,510 --> 00:00:52,039 或者給你一個更好的感 涉及什麼實際指揮 19 00:00:52,039 --> 00:00:54,080 一台電腦做一些事情 通過編程方式。 20 00:00:54,080 --> 00:00:56,663 我們會保持它在一個相當 高的水平,相當多的英語, 21 00:00:56,663 --> 00:00:59,850 但嘗試使用熟悉的 舉例正式如何 22 00:00:59,850 --> 00:01:01,450 你會去解決問題。 23 00:01:01,450 --> 00:01:04,080 >> 我們將重溫一些CS 主題,像抽象, 24 00:01:04,080 --> 00:01:06,040 裡面傳來了一對夫婦 次昨日, 25 00:01:06,040 --> 00:01:07,554 算法,然後表示。 26 00:01:07,554 --> 00:01:09,720 而這也正是我們將開始 今天在短短的時刻。 27 00:01:09,720 --> 00:01:11,481 然後我們將看看節目。 28 00:01:11,481 --> 00:01:13,480 我們就來看看一些 基礎構造 29 00:01:13,480 --> 00:01:16,450 與您可能熟悉 甚至可能會發現很直觀。 30 00:01:16,450 --> 00:01:18,370 >> 我們來看看,其實, 在樣品編程 31 00:01:18,370 --> 00:01:21,244 環境是非常便利, 很愛玩,也確實有針對性 32 00:01:21,244 --> 00:01:22,555 對於年齡在12歲以上。 33 00:01:22,555 --> 00:01:25,930 我們將花幾分鐘時間有 然後拿東西到較低的水平 34 00:01:25,930 --> 00:01:30,360 實際上談一些 的算法和數據結構, 35 00:01:30,360 --> 00:01:32,360 可以這麼說,那 程序員通常使用 36 00:01:32,360 --> 00:01:35,040 解決更為問題 效率可能比你 37 00:01:35,040 --> 00:01:37,322 能夠不通通做。 38 00:01:37,322 --> 00:01:40,280 午餐後,我們就一起來看看 在技​​術堆棧,這僅僅是 39 00:01:40,280 --> 00:01:42,240 說的一種假想方式 技術集合 40 00:01:42,240 --> 00:01:43,690 你可能使用 解決一些問題。 41 00:01:43,690 --> 00:01:46,670 我們將談論字母表 中存在的語言湯today-- 42 00:01:46,670 --> 00:01:50,930 Java和Python和C ++ PHP和 Ruby和各種其他的東西。 43 00:01:50,930 --> 00:01:53,740 >> 我們將看一看簡要 在設計模式。 44 00:01:53,740 --> 00:01:57,730 程序員,隨著時間的推移, 有採用的方法 45 00:01:57,730 --> 00:02:00,690 傾向於幫助他們 解決問題更容易。 46 00:02:00,690 --> 00:02:04,390 當你開始看到自己寫的 同樣的代碼連連, 47 00:02:04,390 --> 00:02:08,080 人的正式重複 而歸於名字給他們 48 00:02:08,080 --> 00:02:10,084 然後用它們和 推進當中,最終。 49 00:02:10,084 --> 00:02:12,250 我們將討論一點點 關於移動戰略, 50 00:02:12,250 --> 00:02:16,099 像什麼意思實際上 使移動應用或移動網站。 51 00:02:16,099 --> 00:02:17,140 你為Android做呢? 52 00:02:17,140 --> 00:02:17,730 你於iOS呢? 53 00:02:17,730 --> 00:02:19,160 你為那些呢? 54 00:02:19,160 --> 00:02:20,326 什麼是取捨? 55 00:02:20,326 --> 00:02:23,180 然後最後,我們將採取 看看網絡編程,這 56 00:02:23,180 --> 00:02:25,380 是的總稱 真正描述的任何時間 57 00:02:25,380 --> 00:02:28,410 你寫軟件的 為了在網絡上運行, 58 00:02:28,410 --> 00:02:30,430 無論是在手機還是 桌面或筆記本電腦。 59 00:02:30,430 --> 00:02:33,490 下面我們通過一個簡單的介紹一下 數據庫和設計 60 00:02:33,490 --> 00:02:39,049 其中,如果僅僅是因為幾乎所有的 有趣基於網絡的應用 61 00:02:39,049 --> 00:02:40,590 這幾天有某種數據庫。 62 00:02:40,590 --> 00:02:42,380 否則,它會 只是靜態內容。 63 00:02:42,380 --> 00:02:45,254 和數據庫使您可以 隨時間的變化,無論是你自己 64 00:02:45,254 --> 00:02:45,960 或者從用戶。 65 00:02:45,960 --> 00:02:47,820 我們會考慮如何 會去設計 66 00:02:47,820 --> 00:02:50,510 該數據庫的那種行話 可能出現的以工程師 67 00:02:50,510 --> 00:02:52,790 在白板討論 當實際執行 68 00:02:52,790 --> 00:02:53,900 首次的應用程式。 69 00:02:53,900 --> 00:02:57,002 >> 我們將討論簡單說一下 API的,有用的服務 70 00:02:57,002 --> 00:02:59,960 您可以使用站上 別人的肩膀上,無論公司 71 00:02:59,960 --> 00:03:02,619 或個人,以及解決您的 自己的問題更迅速。 72 00:03:02,619 --> 00:03:04,785 然後,我們也許會涉足 有點用JavaScript, 73 00:03:04,785 --> 00:03:08,900 該公司使用的編程語言 無論是在瀏覽器這些天,但也 74 00:03:08,900 --> 00:03:09,820 在服務器上。 75 00:03:09,820 --> 00:03:11,890 也許,我們將 重溫,時間允許的話, 76 00:03:11,890 --> 00:03:15,670 一些動手網絡的東西,我們的 昨天做和整合兩個 77 00:03:15,670 --> 00:03:17,630 我們一起休會之前。 78 00:03:17,630 --> 00:03:22,380 >> 因此,與that--什麼ahead--是 有什麼遺漏,你 79 00:03:22,380 --> 00:03:26,289 想確保我們插入 並在某些點觸摸。 80 00:03:26,289 --> 00:03:28,330 如果是彈簧介意, 要拿出來不久。 81 00:03:28,330 --> 00:03:32,010 但是,我們為什麼不開始與 看看計算思維。 82 00:03:32,010 --> 00:03:35,420 >> 讓我提議, 計算思維是,同樣, 83 00:03:35,420 --> 00:03:38,830 排序的高層描述的 什麼是計算機科學家可能會做。 84 00:03:38,830 --> 00:03:42,470 事實上,讓我們開始 有三個成分, 85 00:03:42,470 --> 00:03:44,207 可能會進入計算機思維。 86 00:03:44,207 --> 00:03:45,790 這僅僅是一個描述它的方式。 87 00:03:45,790 --> 00:03:48,490 我們當然可以定義 這在任何數量的方式。 88 00:03:48,490 --> 00:03:50,630 >> 但是,讓我提議, 今天的緣故, 89 00:03:50,630 --> 00:03:53,910 這世界上的問題, 所有的世界難題, 90 00:03:53,910 --> 00:03:56,730 當由接近 計算機科學家可以 91 00:03:56,730 --> 00:04:00,990 如被看作是我們將 電話輸入, 92 00:04:00,990 --> 00:04:08,142 需要得到送入我們就這麼叫 算法,則得到的輸出。 93 00:04:08,142 --> 00:04:10,600 換言之,整個 解決問題的我主張世界 94 00:04:10,600 --> 00:04:13,140 可以蒸餾成 這三種成分。 95 00:04:13,140 --> 00:04:14,450 所以,我是什麼意思的投入? 96 00:04:14,450 --> 00:04:17,060 輸入正是你在做什麼 遞給為了解決。 97 00:04:17,060 --> 00:04:20,052 >> 舉例來說,這裡的 一個老同學的問題。 98 00:04:20,052 --> 00:04:22,760 如果我這裡有電話本和 我想看看東西進去, 99 00:04:22,760 --> 00:04:23,760 這是我的意見。 100 00:04:23,760 --> 00:04:26,260 我有1000個左右 在電話簿頁面。 101 00:04:26,260 --> 00:04:27,780 這是輸入到我的問題。 102 00:04:27,780 --> 00:04:31,507 我想找到的東西 像邁克·史密斯,這樣的朋友 103 00:04:31,507 --> 00:04:33,840 其名稱和編號是 希望能在這個地址簿。 104 00:04:33,840 --> 00:04:36,430 >> 這是細胞的天前 手機,所以我不能只是搜索。 105 00:04:36,430 --> 00:04:38,540 所以,我必須這樣做舊 學校實際上搜索 106 00:04:38,540 --> 00:04:41,331 這些投入對於一些答案。 107 00:04:41,331 --> 00:04:43,580 這答案是正要 被稱為輸出。 108 00:04:43,580 --> 00:04:44,871 所以輸入是電話簿。 109 00:04:44,871 --> 00:04:47,787 該算法是任何集 步驟我用找到邁克·史密斯。 110 00:04:47,787 --> 00:04:50,120 和輸出,希望 邁克·史密斯的電話號碼。 111 00:04:50,120 --> 00:04:52,703 而這則是剛 最具代表性的任何問題 112 00:04:52,703 --> 00:04:55,210 與你手輸入 並希望產生的輸出。 113 00:04:55,210 --> 00:04:59,459 >> 因此,我們認為這個過程之前, 通過它我們可以解決這個問題, 114 00:04:59,459 --> 00:05:01,250 尋找邁克·史密斯和 類似的東西, 115 00:05:01,250 --> 00:05:04,090 讓我們考慮的第一和 的last--輸入和輸出。 116 00:05:04,090 --> 00:05:08,060 物理上,當然,輸入在這裡 由紙一大堆粘在一起 117 00:05:08,060 --> 00:05:09,400 在電話簿的形式。 118 00:05:09,400 --> 00:05:13,660 但是電腦,筆記本電腦course-- 和台式機甚至是手機 119 00:05:13,660 --> 00:05:16,430 這些days--那些 電子設備。 120 00:05:16,430 --> 00:05:20,920 >> 和在一天結束時,什麼 唯一的輸入到電腦? 121 00:05:20,920 --> 00:05:23,299 嗯,這是像 在這份電源線。 122 00:05:23,299 --> 00:05:25,590 我將其插入牆上, 我得到的電子流, 123 00:05:25,590 --> 00:05:27,048 這讓我運行的機器。 124 00:05:27,048 --> 00:05:30,420 或者,也許這些都是電子 我的電池的方式產生。 125 00:05:30,420 --> 00:05:33,790 但在一天結束時,這是 唯一進入我的筆記本電腦。 126 00:05:33,790 --> 00:05:35,772 和這麼多有趣 東西最終是 127 00:05:35,772 --> 00:05:37,480 中走出來,無論是 由打印機的方式 128 00:05:37,480 --> 00:05:40,320 或屏幕或audially或類似物。 129 00:05:40,320 --> 00:05:45,320 >> 所以,如果我們所有的作為我們的 基本輸入到計算機 130 00:05:45,320 --> 00:05:49,160 電,所以才 電子進入和或縮小, 131 00:05:49,160 --> 00:05:54,465 所以我們如何使用該輸入 實際上代表的信息? 132 00:05:54,465 --> 00:05:57,090 換句話說,我們如何獲得 從電力的簡單流程 133 00:05:57,090 --> 00:06:00,350 到代表實際 數字或字母實際 134 00:06:00,350 --> 00:06:03,620 在屏幕上或實際圖像 或實際的電影或電子郵件 135 00:06:03,620 --> 00:06:05,690 或任何數量的這些 更高層次的概念, 136 00:06:05,690 --> 00:06:07,680 如果你願意,在 到頭來不知​​何故 137 00:06:07,680 --> 00:06:11,950 已被存儲在這 電子機械裝置 138 00:06:11,950 --> 00:06:16,260 只使用簡單的ingredients-- 電子出入? 139 00:06:16,260 --> 00:06:19,530 >> 因此,它似乎是, 在最簡單的形式, 140 00:06:19,530 --> 00:06:23,260 唯一的一種狀態 我在我的世界,所以 141 00:06:23,260 --> 00:06:25,350 到speak--條件 在我的天下 - 要么是 142 00:06:25,350 --> 00:06:33,020 我有電子流,電 流動的,或者我不是 - 等等,關閉。 143 00:06:33,020 --> 00:06:35,850 讓我們正式開啟和關閉, 作為一名計算機科學家可能, 144 00:06:35,850 --> 00:06:37,255 只用1和0。 145 00:06:37,255 --> 00:06:39,880 讓我們只介紹一些武斷 但一致的編號。 146 00:06:39,880 --> 00:06:41,970 1意味著,0表示關閉。 147 00:06:41,970 --> 00:06:45,427 或者你也可以認為這是 對真正的手段和虛假的手段。 148 00:06:45,427 --> 00:06:47,510 你也可以做黑色 和白色或紅色和藍色。 149 00:06:47,510 --> 00:06:48,759 你只需要兩個描述符。 150 00:06:48,759 --> 00:06:52,240 和計算機科學家們 一般只要用0和1。 151 00:06:52,240 --> 00:06:58,980 >> 所以,如果是這樣的話,我唯一的字母 是由0和1的,如何 152 00:06:58,980 --> 00:07:03,360 我可不可以去連號 2在一台電腦,更別說3號 153 00:07:03,360 --> 00:07:06,140 或一個字母 或圖像或電影? 154 00:07:06,140 --> 00:07:08,910 我們怎麼樣的引導 從自己這一基本原則 155 00:07:08,910 --> 00:07:12,080 的0和1的和實際 代表更有趣的東西? 156 00:07:12,080 --> 00:07:14,430 >> 好了,讓我們把這個問題 擱置一會兒就好了 157 00:07:14,430 --> 00:07:17,520 並考慮什麼 希望熟悉, 158 00:07:17,520 --> 00:07:21,150 即使你有沒有想過 它在任何細節為10,20,30,40,50 159 00:07:21,150 --> 00:07:22,520 更多年。 160 00:07:22,520 --> 00:07:24,780 這是什麼? 161 00:07:24,780 --> 00:07:28,050 你將如何發音呢? 162 00:07:28,050 --> 00:07:30,770 不是一個很難回答的問題。 163 00:07:30,770 --> 00:07:32,950 一個數字,但它是什麼? 164 00:07:32,950 --> 00:07:34,842 1,2,3,或123。 165 00:07:34,842 --> 00:07:37,800 我喜歡你是怎麼說的1,2,3, 因為這是觀看它的一種方式。 166 00:07:37,800 --> 00:07:39,870 1,2,3,它的一個序列 三個符號。 167 00:07:39,870 --> 00:07:42,005 這是圖片,我們 現在有話。 168 00:07:42,005 --> 00:07:44,880 如果你之類的閱讀全部 同時,在英國一個典型的人類 169 00:07:44,880 --> 00:07:46,600 會說123。 170 00:07:46,600 --> 00:07:48,350 這就是形式的 更高層次的概念, 171 00:07:48,350 --> 00:07:50,340 感覺就像一個相當大的數字。 172 00:07:50,340 --> 00:07:51,490 >> 但是,我們是怎麼到達那裡? 173 00:07:51,490 --> 00:07:54,640 嗯,這可能是因為一段時間 你想過這個問題是這樣, 174 00:07:54,640 --> 00:07:56,680 但早在我的一天,我 那種得知這個 175 00:07:56,680 --> 00:08:01,030 作為1的專欄中,10級的 列和100的列。 176 00:08:01,030 --> 00:08:06,400 從而Lakisa說,這是 1,2,3,但它也是123。 177 00:08:06,400 --> 00:08:08,700 但是,我們如何從中獲取 前者向後者? 178 00:08:08,700 --> 00:08:12,340 >> 那麼,你通常會做 100的專欄中,我有一個1。 179 00:08:12,340 --> 00:08:14,794 所以,這等於是說100次1。 180 00:08:14,794 --> 00:08:16,210 然後在10的專欄中,我有2個。 181 00:08:16,210 --> 00:08:18,464 所以,這等於是說10次2。 182 00:08:18,464 --> 00:08:19,630 在1的專欄中,我有3個。 183 00:08:19,630 --> 00:08:21,720 所以,這等於是說1次3。 184 00:08:21,720 --> 00:08:24,290 >> 如果我添加這些東西 在一起,這當然 185 00:08:24,290 --> 00:08:27,470 是100加10加3。 186 00:08:27,470 --> 00:08:31,750 呵呵,這就是為什麼我得到這個 123更高級別的概念。 187 00:08:31,750 --> 00:08:37,220 這只是基本的數學運算,由此這些 符號具有權重給他們,如果 188 00:08:37,220 --> 00:08:39,620 將佔位符或列的值。 189 00:08:39,620 --> 00:08:42,090 有一次我乘的一切 出來,我得到這個號碼。 190 00:08:42,090 --> 00:08:47,840 >> 所以,你知道怎麼很多怎麼說話 binary-- 0和1's--像電腦一樣? 191 00:08:47,840 --> 00:08:50,410 OK,完美的,沒有一個人,或 你們沒有覺得你做的。 192 00:08:50,410 --> 00:08:52,550 不過,我會聲稱你 其實已經知道了。 193 00:08:52,550 --> 00:08:55,330 我們只需要幾分調整 我們的心智模式一點點。 194 00:08:55,330 --> 00:08:57,250 但是這個過程是完全相同的。 195 00:08:57,250 --> 00:09:01,460 >> 讓我離開這一個那裡, 而不是拉下來了一會兒。 196 00:09:01,460 --> 00:09:05,060 在計算機世界, 我們只有0和1的。 197 00:09:05,060 --> 00:09:07,240 這樣一來,事情那 要改變的是什麼? 198 00:09:07,240 --> 00:09:10,920 那麼,在我的人類世界中, 十進位制,DEC意義10, 199 00:09:10,920 --> 00:09:12,740 我已經在我手上了多少位? 200 00:09:12,740 --> 00:09:15,270 201 00:09:15,270 --> 00:09:16,540 10,對不對? 202 00:09:16,540 --> 00:09:17,880 0到9,當然。 203 00:09:17,880 --> 00:09:21,210 >> 這就是為什麼我們有 10的地點和100的位置。 204 00:09:21,210 --> 00:09:22,380 那是哪裡來的? 205 00:09:22,380 --> 00:09:24,430 那麼,這是10到0的力量。 206 00:09:24,430 --> 00:09:28,440 這是10到1的功率,10 到2的冪,等等。 207 00:09:28,440 --> 00:09:32,110 你只是保持你的乘以列 10,出發只需1 208 00:09:32,110 --> 00:09:33,700 在這裡最右邊的之一。 209 00:09:33,700 --> 00:09:35,490 >> 因此在世界上 電腦,如果你只 210 00:09:35,490 --> 00:09:39,600 有binary--雙向含義 2--或0和1的,我們只是 211 00:09:39,600 --> 00:09:42,420 真的需要改變 那數學的基礎。 212 00:09:42,420 --> 00:09:46,410 因此,換句話說,現在我們只是 有1的專欄和曲風 213 00:09:46,410 --> 00:09:51,270 這是哪裡going-- 2的專欄中, 4個專欄,也許超越。 214 00:09:51,270 --> 00:09:52,250 這是為什麼? 215 00:09:52,250 --> 00:09:55,650 那麼,這是2 0次方。 216 00:09:55,650 --> 00:09:57,270 這是2 1。 217 00:09:57,270 --> 00:09:59,610 這是2到2,依此類推。 218 00:09:59,610 --> 00:10:04,910 >> 因此而在這裡,我們有1,10年代, 100的,1000的,萬的,10萬級的,1 219 00:10:04,910 --> 00:10:10,560 數以百萬計,等等,這裡 我們有1個,2個,4個,8個,16個,32,64。 220 00:10:10,560 --> 00:10:13,950 你只要保持乘以2, 而不是繼​​續乘以10。 221 00:10:13,950 --> 00:10:16,780 所以,現在,如果目標在 一方面是代表 222 00:10:16,780 --> 00:10:20,240 僅使用0和1的數字, 讓我們考慮我們如何到達那裡。 223 00:10:20,240 --> 00:10:26,540 >> 此,當然,是模式0 0 0,但什麼號碼概念 224 00:10:26,540 --> 00:10:27,490 它代表什麼? 225 00:10:27,490 --> 00:10:35,430 那麼,4次加0 2次加0 1次0,讓我們添加這些在一起。 226 00:10:35,430 --> 00:10:40,030 4次0,當然,0,加2 次0是,當然,0加1次0 227 00:10:40,030 --> 00:10:40,850 是,當然,0。 228 00:10:40,850 --> 00:10:44,910 所以啊,這代表了 一些我們人類所知道的0。 229 00:10:44,910 --> 00:10:47,810 >> 好了,現在,讓我們很 迅速快進。 230 00:10:47,810 --> 00:10:53,600 如果我不是沒有代表 0 0 0,但讓我們做1 0 1, 231 00:10:53,600 --> 00:10:57,010 這可能是如何Lakisa,此前, 只會念它1 0 1。 232 00:10:57,010 --> 00:11:01,020 但是現在,我們怎麼把它帶到更高 水平,我們人類可能知道多少? 233 00:11:01,020 --> 00:11:04,220 那麼,什麼是這個數字? 234 00:11:04,220 --> 00:11:06,060 這是5,我們知道5的數量。 235 00:11:06,060 --> 00:11:06,870 >> 那麼,這是為什麼? 236 00:11:06,870 --> 00:11:09,620 好了,我們才能真正的排序 穿行有條不紊 237 00:11:09,620 --> 00:11:14,880 4次1,2 0次,1次1。 238 00:11:14,880 --> 00:11:19,880 添加這些在一起,所以 這是4加0加1。 239 00:11:19,880 --> 00:11:21,577 而這,的確,5。 240 00:11:21,577 --> 00:11:24,660 所以它現在變得有些乏味 一次又一次地做算術。 241 00:11:24,660 --> 00:11:26,300 但是這個過程是完全相同的。 242 00:11:26,300 --> 00:11:28,380 >> 有唯一 在我們的世界變了 243 00:11:28,380 --> 00:11:32,740 是,我們的列是1,2,4,8,16, 等,代替1,10,100, 244 00:11:32,740 --> 00:11:33,740 1000。 245 00:11:33,740 --> 00:11:40,000 而這僅僅是因為我們的字母表 從0到9減少到只有0到1。 246 00:11:40,000 --> 00:11:50,851 >> 因此,作為一個小測驗這裡,怎麼會 你代表二進制數字7? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 好吧,0,你的意思是0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 再說一遍,卡琳娜。 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 完善。 253 00:12:03,550 --> 00:12:04,370 這是為什麼? 254 00:12:04,370 --> 00:12:08,530 這是有效的4加2加1。 255 00:12:08,530 --> 00:12:09,580 很好。 256 00:12:09,580 --> 00:12:14,364 >> 我們如何代表一點點 another--怎麼樣2號? 257 00:12:14,364 --> 00:12:18,360 258 00:12:18,360 --> 00:12:20,690 關閉,而是倒退。 259 00:12:20,690 --> 00:12:21,660 所以,這是什麼? 260 00:12:21,660 --> 00:12:26,290 為4加1,以便再次是5。 261 00:12:26,290 --> 00:12:28,310 >> 所以what's--對不起,卡琳娜? 262 00:12:28,310 --> 00:12:29,220 0 1 0。 263 00:12:29,220 --> 00:12:34,762 0 1 0將是2,因為再次,甚至 如果是那種不跳出你, 264 00:12:34,762 --> 00:12:35,470 只是做數學題。 265 00:12:35,470 --> 00:12:40,390 4次0,0,2倍 1是2,1次0為0。 266 00:12:40,390 --> 00:12:42,830 因此,這是我們所知道的2的數量。 267 00:12:42,830 --> 00:12:44,030 >> 如何對數8? 268 00:12:44,030 --> 00:12:51,240 269 00:12:51,240 --> 00:12:52,730 嗯? 270 00:12:52,730 --> 00:12:53,330 好。 271 00:12:53,330 --> 00:12:56,130 所以,我們種需要另一個佔位符。 272 00:12:56,130 --> 00:12:59,570 我們需要1 0 0 0。 273 00:12:59,570 --> 00:13:02,280 這就是我們的那種真正的 老同學十進制。 274 00:13:02,280 --> 00:13:05,280 你如何代表人數1000? 275 00:13:05,280 --> 00:13:08,480 >> 嗯,你似乎是 那種在一個艱難的位置, 276 00:13:08,480 --> 00:13:10,390 如果問你代表 數字1000, 277 00:13:10,390 --> 00:13:14,960 因為即使你給自己喜歡 這些9,這些9,這些0, 278 00:13:14,960 --> 00:13:18,730 這是最大的數字,你 有,你沒有完全得到為1000。 279 00:13:18,730 --> 00:13:26,920 所以,如果你1000,你只需要另 的位置,這樣就可以做1 0 0 0, 280 00:13:26,920 --> 00:13:29,460 ERGO人數1000人。 281 00:13:29,460 --> 00:13:34,200 >> 所以,現在,讓我們來映射這種 概念性的討論給硬件, 282 00:13:34,200 --> 00:13:37,470 再次在這裡,輸入只是 這個小電力電纜,電 283 00:13:37,470 --> 00:13:39,300 進來和流出。 284 00:13:39,300 --> 00:13:44,740 所以對於從這裡被映射 在那裡,那麼,我們真的需要? 285 00:13:44,740 --> 00:13:49,460 那麼,你能想到的是一個內部 電腦,一大堆的燈泡, 286 00:13:49,460 --> 00:13:50,450 如果你願意。 287 00:13:50,450 --> 00:13:52,040 他們真的叫晶體管。 288 00:13:52,040 --> 00:13:55,121 和晶體管只是切換 這可以是打開或關閉。 289 00:13:55,121 --> 00:13:56,870 所以,你能想到的 晶體管那是上 290 00:13:56,870 --> 00:14:00,730 是允許電力流動, 晶體管那是冒充停止 291 00:14:00,730 --> 00:14:02,170 電力流入。 292 00:14:02,170 --> 00:14:04,130 而非採取 在這裡的燈光, 293 00:14:04,130 --> 00:14:06,450 為什麼不讓我做這種 新的派風格。 294 00:14:06,450 --> 00:14:11,360 因此,這可能是一個圖1中,手電筒 正對,僅勉強雖然。 295 00:14:11,360 --> 00:14:14,050 而這可能是0,現在是關閉。 296 00:14:14,050 --> 00:14:18,277 >> 因此,使用這種物理設備,我 現在可以表示二進制的系統。 297 00:14:18,277 --> 00:14:19,235 我只需要兩個狀態。 298 00:14:19,235 --> 00:14:21,660 不要緊什麼 顏色是或它是什麼。 299 00:14:21,660 --> 00:14:25,920 所有重要的是,我有 在一個國家和另一個國家了。 300 00:14:25,920 --> 00:14:30,605 因此,使用我的手機在這裡,我該怎麼辦 代表我們所知道的0的數量? 301 00:14:30,605 --> 00:14:34,490 302 00:14:34,490 --> 00:14:38,550 或者把等價,是什麼 數字我現在能代表? 303 00:14:38,550 --> 00:14:39,810 0,因為該設備處於關閉狀態。 304 00:14:39,810 --> 00:14:41,560 >> 如果我這樣做呢? 305 00:14:41,560 --> 00:14:43,583 而現在,我該怎麼辦 表示數字2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 我能借你的手機 在這裡,正如我們昨天做? 308 00:14:50,930 --> 00:14:58,490 因此,讓我們來看看,所以如果我要代表 數字2,這是2號? 309 00:14:58,490 --> 00:14:59,050 沒有。 310 00:14:59,050 --> 00:15:02,250 什麼號碼是我不小心 代表在這裡? 311 00:15:02,250 --> 00:15:03,550 這實際上是數字3。 312 00:15:03,550 --> 00:15:05,008 >> 那麼,哪一個做我想要關掉? 313 00:15:05,008 --> 00:15:09,634 黑手機or--好,如果they're-- 黑手機或白色手機? 314 00:15:09,634 --> 00:15:10,300 白色手機。 315 00:15:10,300 --> 00:15:17,020 所以,如果我把這個關閉,我們 線它在這裡,我們有一個1 316 00:15:17,020 --> 00:15:19,487 在2的地方,並 0在1的位置。 317 00:15:19,487 --> 00:15:21,195 所以我現在 表示數字2。 318 00:15:21,195 --> 00:15:24,680 而這,當然,會是多少 3,因為現在這兩個燈 319 00:15:24,680 --> 00:15:25,350 在...上。 320 00:15:25,350 --> 00:15:27,480 >> 我會停在這裡, 但按理說 321 00:15:27,480 --> 00:15:31,100 如果我想代表 號4或8或更高, 322 00:15:31,100 --> 00:15:32,529 我將需要更多的手機。 323 00:15:32,529 --> 00:15:33,820 但是,這一切是怎麼回事。 324 00:15:33,820 --> 00:15:37,800 所以,如果你曾經聽說過 中A--裡面感謝你 - 計算機 325 00:15:37,800 --> 00:15:42,269 是數百萬個晶體管,這是 只是數百萬小小的開關。 326 00:15:42,269 --> 00:15:44,310 他們不是光 燈泡是打開和關閉, 327 00:15:44,310 --> 00:15:48,340 但他們要么允許電 某處流動或停止。 328 00:15:48,340 --> 00:15:52,140 所以,有你的兩個 states--開或關,開或關。 329 00:15:52,140 --> 00:15:55,730 >> 所以我們現在似乎 有這種能力 330 00:15:55,730 --> 00:16:00,590 代表這個概念, 我們希望在實際硬件。 331 00:16:00,590 --> 00:16:05,520 但是,所有我們現在擁有的是能力 來表示數字又好像。 332 00:16:05,520 --> 00:16:08,580 那麼,我們如何去代表 英文字母,這 333 00:16:08,580 --> 00:16:12,310 感覺像一個排序功能的你 將要添加到現代計算機 334 00:16:12,310 --> 00:16:14,280 一旦你有數字嗎? 335 00:16:14,280 --> 00:16:16,930 >> 事實上,如果你仔細想想 它在歷史上,計算機 336 00:16:16,930 --> 00:16:19,426 真的被引入到 作為數字計算器。 337 00:16:19,426 --> 00:16:21,300 但當然,這些 天,他們做更多的事情。 338 00:16:21,300 --> 00:16:23,799 即使當他們啟動,你 通常會看到一個或多個單詞。 339 00:16:23,799 --> 00:16:27,420 那麼,你如何表現的話, 如果你已經是再次 340 00:16:27,420 --> 00:16:31,054 在電的結束 天,或等效地0和1的? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> 是啊。 343 00:16:35,690 --> 00:16:38,320 是的,我的意思是,我們種做 這個昨天以某種形式, 344 00:16:38,320 --> 00:16:40,200 其中,在某些時候, 我想我隨意 345 00:16:40,200 --> 00:16:46,741 說,如果我們想要代表 字母A,我們可以只把那個叫1。 346 00:16:46,741 --> 00:16:49,990 它是在加密的情況下, 在這裡我們只是需要某種形式的代碼, 347 00:16:49,990 --> 00:16:51,160 某種映射。 348 00:16:51,160 --> 00:16:56,680 >> 因此,也許A將被表示為 1,和B將被表示為2, 349 00:16:56,680 --> 00:17:01,560 和Z將被表示 作為26,例如。 350 00:17:01,560 --> 00:17:07,430 然後是唯一需要注意的是,如果我 要在我的電子郵件編碼的信 351 00:17:07,430 --> 00:17:10,430 還是在我的短信 數字,大家 352 00:17:10,430 --> 00:17:12,640 必須同意使用 同組約定。 353 00:17:12,640 --> 00:17:14,619 事實上,世界 做了這一點。 354 00:17:14,619 --> 00:17:18,040 >> 有在世界上的系統 所謂的ASCII,美國標準 355 00:17:18,040 --> 00:17:21,640 信息交換碼, 這是一個簡單的決定,有些年份 356 00:17:21,640 --> 00:17:25,720 以前,人類製造的 決定,是要平等的,不 357 00:17:25,720 --> 00:17:32,260 1,2,和26,以及因此forth--它是一個 小different--但65,66,67。 358 00:17:32,260 --> 00:17:34,010 我拉了 圖中只是一瞬間。 359 00:17:34,010 --> 00:17:34,580 但它的隨意性。 360 00:17:34,580 --> 00:17:36,329 但沒關係 它的隨意性。 361 00:17:36,329 --> 00:17:38,620 世界上有只保持一致。 362 00:17:38,620 --> 00:17:40,540 >> 現在,最近, 有一些票友 363 00:17:40,540 --> 00:17:45,430 所謂的Unicode,因為世界上的那種 來實現,發明電腦後, 364 00:17:45,430 --> 00:17:50,977 有比多好 在世界上256個符號 365 00:17:50,977 --> 00:17:53,560 我們可能要代表, 尤其是當你介紹 366 00:17:53,560 --> 00:17:58,420 亞洲語言和其他符號 需要比你更表現 367 00:17:58,420 --> 00:18:02,150 可以容納的最早版本 這個代碼,這被稱為ASCII。 368 00:18:02,150 --> 00:18:05,250 所以Unicode的實際上允許 您使用起來更加的0和2。 369 00:18:05,250 --> 00:18:08,830 特別是,你不斷聽到 字的字節社會中甚至只 370 00:18:08,830 --> 00:18:09,400 昨天。 371 00:18:09,400 --> 00:18:12,040 而一個字節又是什麼? 372 00:18:12,040 --> 00:18:14,840 >> 什麼是字節? 373 00:18:14,840 --> 00:18:15,700 這只是8位。 374 00:18:15,700 --> 00:18:17,150 那麼是什麼究竟意味著什麼? 375 00:18:17,150 --> 00:18:22,400 嗯,這意味著,更早的時候,我們 談到二進制和我所用 376 00:18:22,400 --> 00:18:28,010 任意三位當我們 談到binary-- 1的地方, 377 00:18:28,010 --> 00:18:33,600 2的地方,和4的place--好, 一個字節只是意味著你在說 378 00:18:33,600 --> 00:18:38,730 未在三個單位,但 四,五,六,七八, 379 00:18:38,730 --> 00:18:46,910 這給了我們8的地方, 16年代,32年代,64年代,和128的。 380 00:18:46,910 --> 00:18:50,010 >> 換句話說,比特是不是所有的 該措施的有用單位, 381 00:18:50,010 --> 00:18:53,132 因為它就像一個很小的小 片的信息,開啟或關閉。 382 00:18:53,132 --> 00:18:54,840 因此,一些年前, 世界剛剛決定 383 00:18:54,840 --> 00:18:59,060 它稍微更方便地在說話 字節為單位,在時間八件事。 384 00:18:59,060 --> 00:19:01,670 於是從而誕生 一個字節的概念。 385 00:19:01,670 --> 00:19:03,640 所以,我們在這裡有八位。 386 00:19:03,640 --> 00:19:06,810 >> 而事實證明,也為類似 原因,世界上決定年 387 00:19:06,810 --> 00:19:12,439 以前,來表示一個ASCII字母, 你要使用8位的單位。 388 00:19:12,439 --> 00:19:14,230 所以,即使你不 需要那麼多,你 389 00:19:14,230 --> 00:19:18,130 始終將使用8位 代表一個字母。 390 00:19:18,130 --> 00:19:20,950 這是方便的, 因為那樣的話,如果你 391 00:19:20,950 --> 00:19:28,720 收到具有0 0 0 1 1信息 1 1 0後跟另一個1 1 1 0 1 0 392 00:19:28,720 --> 00:19:33,320 0 1,因此,如果您收到16 位,世界正好可以 393 00:19:33,320 --> 00:19:37,460 假定第一8是一個字母 第二是8的另一封信。 394 00:19:37,460 --> 00:19:39,240 >> 不要緊,有多少。 395 00:19:39,240 --> 00:19:41,460 它只是事項 我們都一致 396 00:19:41,460 --> 00:19:42,950 當我們解釋這些位。 397 00:19:42,950 --> 00:19:44,377 而這只是隨機的。 398 00:19:44,377 --> 00:19:47,210 這意味著什麼,但我沒有 仔細想想這意味著什麼。 399 00:19:47,210 --> 00:19:49,620 >> 所以這是一個白色的小謊言。 400 00:19:49,620 --> 00:19:51,990 原來,ASCII 實際使用的僅7位。 401 00:19:51,990 --> 00:19:54,180 而第八位 所謂擴展ASCII。 402 00:19:54,180 --> 00:19:56,290 但問題是,最終是一樣的。 403 00:19:56,290 --> 00:19:58,850 世界一般 標準化的8位。 404 00:19:58,850 --> 00:20:04,290 >> 因此,這似乎是一個小 限制,因為我只能 405 00:20:04,290 --> 00:20:07,970 代表資本A, 通過資本Z.資本2 406 00:20:07,970 --> 00:20:10,940 但是確實不,如果我去中場休息 有一堆資源 407 00:20:10,940 --> 00:20:13,695 線上,例如, asciitable.com,這 408 00:20:13,695 --> 00:20:16,310 將是一個小 壓倒在第一。 409 00:20:16,310 --> 00:20:18,910 但我會指出, 這裡是什麼是非常重要的。 410 00:20:18,910 --> 00:20:24,090 >> 這恰好be--,我會 walk--讓我們來看看,如果我去在這裡。 411 00:20:24,090 --> 00:20:27,990 這裡,在該小數 列,數65。 412 00:20:27,990 --> 00:20:32,201 而在右手列字母 性格,人權委員會,是字母A. 413 00:20:32,201 --> 00:20:34,450 而且你可以忽略,現在, 一切都在中間。 414 00:20:34,450 --> 00:20:36,769 這是十六進制, 八進制,和一個HTML代碼。 415 00:20:36,769 --> 00:20:39,810 這個網站只是試圖拋出 你有很多一次的信息。 416 00:20:39,810 --> 00:20:42,970 但是,我們關心的是十進制 列和字符列。 417 00:20:42,970 --> 00:20:46,190 >> 因此,通過這樣的邏輯,是什麼 數,世界 418 00:20:46,190 --> 00:20:50,510 已經決定代表小寫? 419 00:20:50,510 --> 00:20:52,230 是啊,97。 420 00:20:52,230 --> 00:20:55,850 而僅僅是用來迷惑 可能略有下降, 421 00:20:55,850 --> 00:21:03,715 什麼號碼已經是世界決定 將代表數字1? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 沒錯,因為we-- 49,似乎 在這裡,在底部向下走了。 424 00:21:10,910 --> 00:21:12,320 >> 現在,我是什麼意思呢? 425 00:21:12,320 --> 00:21:14,830 所以,事實證明, 在計算機系統中, 426 00:21:14,830 --> 00:21:16,840 一般是有 根本的區別 427 00:21:16,840 --> 00:21:19,920 之間的數字和字符。 428 00:21:19,920 --> 00:21:22,330 一個數字是我們的事 學會長大的時候 429 00:21:22,330 --> 00:21:23,830 我們在小學的超級年輕。 430 00:21:23,830 --> 00:21:25,110 這事你算。 431 00:21:25,110 --> 00:21:30,220 但一個字符僅僅是一個形狀, 字形,可以這麼說,在屏幕上。 432 00:21:30,220 --> 00:21:36,200 >> 現在,我們人類那種見 一些看起來是這樣的。 433 00:21:36,200 --> 00:21:39,060 而我們說,哦,那是2號。 434 00:21:39,060 --> 00:21:44,999 但是,沒有,這只是看起來的象徵 就像我們所知道的數字2。 435 00:21:44,999 --> 00:21:46,790 所以有這 根本的區別 436 00:21:46,790 --> 00:21:50,340 實際數字和字符之間。 437 00:21:50,340 --> 00:21:52,130 這是一個數字。 438 00:21:52,130 --> 00:21:54,420 但是總體來說,在 一台電腦的情況下, 439 00:21:54,420 --> 00:21:56,809 如果你不是看到 像這樣quoted-- 440 00:21:56,809 --> 00:21:58,600 而你總是不 必須看到它引用, 441 00:21:58,600 --> 00:22:01,474 但對於discussion--的緣故,如果 你看到周圍的一些報價, 442 00:22:01,474 --> 00:22:02,730 現在這是一個字符。 443 00:22:02,730 --> 00:22:06,330 因此,這2號下方 一個計算機的內部機罩 444 00:22:06,330 --> 00:22:12,220 將與一個圖案來表示 代表的比特數 445 00:22:12,220 --> 00:22:14,850 50,根據圖表聯機。 446 00:22:14,850 --> 00:22:18,300 >> 然而,如果計算機 剛看到這一點,這 447 00:22:18,300 --> 00:22:24,580 將與表示 位0 0 0 0 0 0 1 0模式。 448 00:22:24,580 --> 00:22:29,595 然而,這種性格會 實際as--現在代表, 449 00:22:29,595 --> 00:22:34,710 我覺得有點harder--所以這 人物將與0來表示 450 00:22:34,710 --> 00:22:39,080 0 1--需要什麼嗎? 451 00:22:39,080 --> 00:22:44,450 0 0 1 1 0 0 1 0。 452 00:22:44,450 --> 00:22:45,480 我是如何做到這一點? 453 00:22:45,480 --> 00:22:49,580 嗯,這是50號,如果你 使用這些列繁衍出來, 454 00:22:49,580 --> 00:22:53,530 這是2號,等等 這就是為什麼有這種二分法。 455 00:22:53,530 --> 00:22:55,850 >> 而這僅僅是一個 現在傳情的特點 456 00:22:55,850 --> 00:22:59,710 中存在的編程語言 我們將簡要地對今天晚些時候觸及。 457 00:22:59,710 --> 00:23:01,950 在編程語言, 你一般有, 458 00:23:01,950 --> 00:23:04,495 但並非總是如此,事 調用不同的數據類型。 459 00:23:04,495 --> 00:23:06,870 換言之,一個programmer-- 當他或她正在寫, 460 00:23:06,870 --> 00:23:11,150 程序員獲取決定什麼 格式存儲自己的數據。 461 00:23:11,150 --> 00:23:14,120 您可以將數據存儲為 原始數據,如數字2。 462 00:23:14,120 --> 00:23:17,940 或者你可以將它們存儲為字符串, 或字符序列 463 00:23:17,940 --> 00:23:21,550 你會通常與表達 報價在您的編程語言。 464 00:23:21,550 --> 00:23:25,230 >> 你可以擁有的東西called-- 我會簡單化,並呼籲他們 465 00:23:25,230 --> 00:23:28,870 實numbers--使數字, 就像數字2不是整數, 466 00:23:28,870 --> 00:23:31,310 但喜歡的數字4.56。 467 00:23:31,310 --> 00:23:33,490 所以實數還可以 有小數點, 468 00:23:33,490 --> 00:23:36,340 所以這是一個根本的不同 在計算機中的數據塊。 469 00:23:36,340 --> 00:23:41,920 然後,你甚至可以有 其他數據類型仍。 470 00:23:41,920 --> 00:23:45,810 所以這真的只是一個傳情 最簡單的設計決策 471 00:23:45,810 --> 00:23:50,960 一個程序員可能 使引擎蓋下方。 472 00:23:50,960 --> 00:23:52,925 >> 所以,只是還沒有什麼問題嗎? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 因此,讓我們試著讓 這一點更真實。 475 00:23:59,860 --> 00:24:02,120 此硬件不 這麼多的使用了。 476 00:24:02,120 --> 00:24:07,420 但大多數人在這個房間可能 從小一起長大的,並仍然使用硬盤驅動器 477 00:24:07,420 --> 00:24:08,010 某種程度上來說。 478 00:24:08,010 --> 00:24:10,100 >> 儘管大多數的 我們的筆記本電腦不再 479 00:24:10,100 --> 00:24:15,900 有一個這樣的操作設備, 今天,而不是一般筆記本電腦 480 00:24:15,900 --> 00:24:18,590 有固態硬盤 沒有移動部件。 481 00:24:18,590 --> 00:24:22,840 並且更趨於昂貴, 不幸的是,但有點快 482 00:24:22,840 --> 00:24:27,230 和A--很好,經常,速度快了很多, 這是原因之一。 483 00:24:27,230 --> 00:24:28,980 而且它不 產生很多熱量。 484 00:24:28,980 --> 00:24:31,680 它可以更小,因此它的 通常一個淨正。 485 00:24:31,680 --> 00:24:35,030 >> 但是,這使我們能夠映射 多一點具體什麼 486 00:24:35,030 --> 00:24:38,460 我們在0的談論和 現在1的水平提升到一個物理設備。 487 00:24:38,460 --> 00:24:40,810 這是一件事對我說話 大約0和1中術語 488 00:24:40,810 --> 00:24:43,990 我的手機或抽象的術語 的開關被打開和關閉。 489 00:24:43,990 --> 00:24:45,340 但對於硬盤驅動器? 490 00:24:45,340 --> 00:24:48,495 在你的筆記本電腦,如果你有一個舊 之一,或在您的台式電腦, 491 00:24:48,495 --> 00:24:51,200 或肯定服務器 今天,在這裡你有 492 00:24:51,200 --> 00:24:53,070 有硬盤驅動器 的空間兆兆位 493 00:24:53,070 --> 00:24:55,560 4 TB的空間, 還有什麼意思呢? 494 00:24:55,560 --> 00:24:59,560 >> 一個硬盤驅動器1 空間的手段太字節 495 00:24:59,560 --> 00:25:03,890 有1萬億字節 它以某種方式裡面, 496 00:25:03,890 --> 00:25:10,450 或等價內8萬億比特。 497 00:25:10,450 --> 00:25:16,240 1 TB的將是8兆兆位 或1萬億位, 498 00:25:16,240 --> 00:25:19,330 意味著如果你有一個硬 驅動器,你有不知何故 499 00:25:19,330 --> 00:25:22,400 或其他一萬億0 和1的內部的它。 500 00:25:22,400 --> 00:25:25,360 如果我們只是來看看的 硬盤驅動器的任意圖像 501 00:25:25,360 --> 00:25:30,110 的代表,這是一個多麼難 驅動器可能通常看起來像裡面。 502 00:25:30,110 --> 00:25:32,600 >> 它也有點像 一個老唱機 503 00:25:32,600 --> 00:25:35,350 但一般用 多個記錄裡面,所以 504 00:25:35,350 --> 00:25:38,270 到speak--多 盤片,因為他們是所謂的, 505 00:25:38,270 --> 00:25:42,259 金屬圓盤,和 這時,一個小的讀頭, 506 00:25:42,259 --> 00:25:43,550 很像一個老唱機。 507 00:25:43,550 --> 00:25:46,589 和讀頭前後移動 提出並以某種方式讀取位。 508 00:25:46,589 --> 00:25:49,380 什麼是對這些盤片,甚至 雖然我們人類無法看到它們, 509 00:25:49,380 --> 00:25:52,757 無論是在現實還是在這張照片, 有微小的磁性顆粒。 510 00:25:52,757 --> 00:25:55,090 而且,即使你早就 忘了電的使用原理, 511 00:25:55,090 --> 00:25:57,550 磁性粒子 即通常的充電 512 00:25:57,550 --> 00:26:00,570 有北邊和南邊 end--所以南北。 513 00:26:00,570 --> 00:26:03,000 這樣一來,世界剛 決定前一段時間 514 00:26:03,000 --> 00:26:06,570 即,如果基本上是一個磁性協議 在這樣的排列,南北, 515 00:26:06,570 --> 00:26:07,610 讓我們把那個叫1。 516 00:26:07,610 --> 00:26:10,470 如果它是代替南北, 我們只需要調用一個0。 517 00:26:10,470 --> 00:26:13,350 所以,如果你有 您的處置一萬億 518 00:26:13,350 --> 00:26:16,300 小小的磁 particles--和希望, 519 00:26:16,300 --> 00:26:18,740 硬件中匠心 為了翻轉周圍的人 520 00:26:18,740 --> 00:26:24,450 當你看到fit--,如果你想 代表一大堆0,你 521 00:26:24,450 --> 00:26:28,120 只需要8磁性顆粒 所有的排列是這樣的。 522 00:26:28,120 --> 00:26:30,330 如果你要代表 8個1的,你只要 523 00:26:30,330 --> 00:26:33,170 需要對齊的8磁性顆粒 回背靠背這樣。 524 00:26:33,170 --> 00:26:35,515 >> 這是什麼意思了 磁性粒子? 525 00:26:35,515 --> 00:26:38,390 坦率地說,這些年過去了, 仍然在我腦海中的東西 526 00:26:38,390 --> 00:26:42,139 就是這個傢伙,如果你 從小一起長大的這件事情。 527 00:26:42,139 --> 00:26:43,930 這為little-- 這些unfamiliar--一個 528 00:26:43,930 --> 00:26:47,810 小童年的玩具 這裡有這個人無毛 529 00:26:47,810 --> 00:26:51,690 擁有所有這些小小的黑色 磁性粒子隨之而來。 530 00:26:51,690 --> 00:26:53,930 而使用紅棒, 這僅僅是一個磁鐵, 531 00:26:53,930 --> 00:26:58,460 你可以排序的給他鬍子或 眉毛或頭髮他或任何東西。 532 00:26:58,460 --> 00:27:00,710 所以,事實上,如果我們放大 在,例如,這 533 00:27:00,710 --> 00:27:02,950 是一種遊戲,你 可以用長毛威利玩。 534 00:27:02,950 --> 00:27:06,570 >> 而這只是說,這些 大得多的磁性粒子 535 00:27:06,570 --> 00:27:09,890 比實際是一個硬盤驅動器上, 和少得多的磁性粒子。 536 00:27:09,890 --> 00:27:11,640 但是讓我們真正看到 那麼,如果你確實有 537 00:27:11,640 --> 00:27:14,720 微小磁性顆粒在 硬盤驅動器,你怎麼能真正 538 00:27:14,720 --> 00:27:19,090 使用這些表示數據。 539 00:27:19,090 --> 00:27:20,070 >> [視頻回放] 540 00:27:20,070 --> 00:27:24,190 >> -The硬盤是你的電腦 大多數商店的永久數據。 541 00:27:24,190 --> 00:27:27,170 要做到這一點,數據 沿RAM旅行 542 00:27:27,170 --> 00:27:31,720 軟件的信號,告訴 硬盤如何存儲這些數據。 543 00:27:31,720 --> 00:27:36,570 硬盤驅動器電路的轉換 信號轉換成電壓波動。 544 00:27:36,570 --> 00:27:40,880 這些,反過來,控制硬盤的 曲子分為移動一些為數不多的搬家 545 00:27:40,880 --> 00:27:43,440 零件留在現代計算機。 546 00:27:43,440 --> 00:27:47,650 >> 一些信號控制電機, 其中旋轉的金屬塗層的拼盤。 547 00:27:47,650 --> 00:27:50,980 您的數據實際上是 存儲在這些盤片。 548 00:27:50,980 --> 00:27:56,250 其他信號移動讀/寫磁頭 讀或寫在盤片的數據。 549 00:27:56,250 --> 00:28:00,100 該機械是如此精確 一個人的頭髮甚至無法 550 00:28:00,100 --> 00:28:02,800 首腦之間傳遞 和旋轉盤片。 551 00:28:02,800 --> 00:28:04,887 然而,這一切工作以驚人的速度。 552 00:28:04,887 --> 00:28:05,470 [結束播放] 553 00:28:05,470 --> 00:28:06,780 你可以在看 視頻的尾部, 554 00:28:06,780 --> 00:28:08,340 一般有多個盤片。 555 00:28:08,340 --> 00:28:10,250 因此,閱讀頭 不只是讀頂部。 556 00:28:10,250 --> 00:28:12,458 這有點像三 四個或更多的讀出頭 557 00:28:12,458 --> 00:28:14,920 這一舉動像這樣, 同時讀取數據。 558 00:28:14,920 --> 00:28:17,407 >> 所以有很多的 複雜性和排序時機 559 00:28:17,407 --> 00:28:18,740 該公司參與了硬盤驅動器。 560 00:28:18,740 --> 00:28:21,920 而事情是真的紡織補 速度快,所以有很多的複雜性。 561 00:28:21,920 --> 00:28:25,220 但是,讓我們在一個小更深的放大和 看到這些磁性顆粒 562 00:28:25,220 --> 00:28:27,370 以及如何我們在他們得到。 563 00:28:27,370 --> 00:28:28,750 >> [視頻回放] 564 00:28:28,750 --> 00:28:31,830 >> - 讓我們看看我們 只是慢動作看到的。 565 00:28:31,830 --> 00:28:35,230 當電力的短暫脈衝 被發送到讀/寫頭, 566 00:28:35,230 --> 00:28:39,000 它翻轉上一個微小的電磁 用於第二的一小部分。 567 00:28:39,000 --> 00:28:41,390 磁鐵創建 場,它改變 568 00:28:41,390 --> 00:28:44,600 一個很小,很小的極性 金屬顆粒的一部分 569 00:28:44,600 --> 00:28:46,960 其中每個大衣盤片表面。 570 00:28:46,960 --> 00:28:50,020 圖案系列這些微小的 磁盤上的充電區域 571 00:28:50,020 --> 00:28:54,590 表示在數據的單個位 由計算機使用的二進制數字系統。 572 00:28:54,590 --> 00:28:57,510 >> 現在,如果當前正在發送的一個 通過讀/寫頭的方法, 573 00:28:57,510 --> 00:28:59,899 該區域在一個方向上偏振。 574 00:28:59,899 --> 00:29:01,940 如果當前在發送 相反的方向, 575 00:29:01,940 --> 00:29:04,020 極化反轉。 576 00:29:04,020 --> 00:29:06,440 你如何讓數據從硬盤? 577 00:29:06,440 --> 00:29:08,190 剛剛反轉的過程。 578 00:29:08,190 --> 00:29:10,440 因此,它是在粒子 磁盤獲取當前 579 00:29:10,440 --> 00:29:12,260 在讀/寫頭移動。 580 00:29:12,260 --> 00:29:14,580 放在一起的數百萬 這些磁化段, 581 00:29:14,580 --> 00:29:16,220 和你有一個文件。 582 00:29:16,220 --> 00:29:21,030 >> 現在,一個單一的文件的塊可以是 散佈在驅動器的盤片, 583 00:29:21,030 --> 00:29:24,060 有點像亂 在你的辦公桌上的文件。 584 00:29:24,060 --> 00:29:27,590 因此,一個特殊的額外的文件保留 跟踪的東西在哪裡。 585 00:29:27,590 --> 00:29:30,440 難道你不希望你有 類似的東西? 586 00:29:30,440 --> 00:29:31,290 >> [結束播放] 587 00:29:31,290 --> 00:29:36,260 >> 所以被提到的有,或許是 在刪除昨天的話題。 588 00:29:36,260 --> 00:29:38,380 當你刪除一個 文件,昨天我們說 589 00:29:38,380 --> 00:29:41,020 一台電腦實際上做 什麼,當你拖動的東西 590 00:29:41,020 --> 00:29:44,110 到回收站或垃圾桶? 591 00:29:44,110 --> 00:29:45,150 它只是忘記它。 592 00:29:45,150 --> 00:29:47,540 但是0和1的, 磁性粒子 593 00:29:47,540 --> 00:29:50,640 看起來像紅色和藍色 這裡的東西,或在這裡我的手臂, 594 00:29:50,640 --> 00:29:52,350 仍然存在硬盤上。 595 00:29:52,350 --> 00:29:56,090 >> 所以存在軟件 - Norton實用程序和昔日 596 00:29:56,090 --> 00:29:58,159 和其他更現代 軟件 - 剛 597 00:29:58,159 --> 00:30:01,200 將掃描整個硬盤驅動器尋找 在所有這些0和1的,因為它 598 00:30:01,200 --> 00:30:06,890 事實證明,大多數文件formats-- Word文檔,Excel文件,圖像, 599 00:30:06,890 --> 00:30:10,380 視頻files--都有一定的 圖案,其中常見的。 600 00:30:10,380 --> 00:30:12,550 每個視頻文件可能 是一個不同的視頻, 601 00:30:12,550 --> 00:30:14,870 但前幾 位通常是相同​​的。 602 00:30:14,870 --> 00:30:16,790 或最後幾個位 通常是相同​​的。 603 00:30:16,790 --> 00:30:19,910 >> 因此具有較高的概率, 你可以看一下這些模式。 604 00:30:19,910 --> 00:30:23,700 而且,即使該文件已被遺忘, 你可以以很高的概率說, 605 00:30:23,700 --> 00:30:28,460 但是這看起來像一個Word文檔, 讓恢復它和取消算了吧, 606 00:30:28,460 --> 00:30:28,990 如果你願意。 607 00:30:28,990 --> 00:30:32,330 所以這就是你如何恢復 數據要么被意外 608 00:30:32,330 --> 00:30:36,560 刪除或刪除或故意 刪除的任何目的。 609 00:30:36,560 --> 00:30:42,530 >> 相比之下,安全刪除做什麼 在這樣的圖像的上下文中? 610 00:30:42,530 --> 00:30:44,059 沒錯,讓他們全部隨機。 611 00:30:44,059 --> 00:30:46,350 所以它像是移動的一些 他們失望,他們中的一些起來, 612 00:30:46,350 --> 00:30:49,433 留下他們中的一些不變, 通常會使隨機噪聲出來, 613 00:30:49,433 --> 00:30:52,960 或只是也許使所有的 他們0或全部的1的。 614 00:30:52,960 --> 00:30:56,350 而這也可以一般 擦洗你的數據了。 615 00:30:56,350 --> 00:31:00,160 >> 現在讓我們回到問題 的計算思維,即 616 00:31:00,160 --> 00:31:03,270 我們有公式輸入。 617 00:31:03,270 --> 00:31:06,390 和算法給出 你最終輸出。 618 00:31:06,390 --> 00:31:09,270 我們現在專注於投入和 輸出,因為現在,我 619 00:31:09,270 --> 00:31:12,159 要求我們有辦法 表示輸入和輸出。 620 00:31:12,159 --> 00:31:13,450 我們只是要使用二進制。 621 00:31:13,450 --> 00:31:15,910 >> 而且不管我們 今天想代表, 622 00:31:15,910 --> 00:31:20,230 不管它是一個數字或字母 或其數千電話簿 623 00:31:20,230 --> 00:31:23,210 或圖像或電影,在結束 這一天,它的所有0和1。 624 00:31:23,210 --> 00:31:26,640 而我堅持認為,儘管這 是一個超級簡單的世界,只是0 625 00:31:26,640 --> 00:31:28,240 和1,我們可以建立自己的。 626 00:31:28,240 --> 00:31:32,210 而我們看到的一個例子 與字母迄今。 627 00:31:32,210 --> 00:31:35,615 >> 現在讓我們專注於此 中間成分的算法。 628 00:31:35,615 --> 00:31:38,190 讓我們回到本 例如邁克·史密斯。 629 00:31:38,190 --> 00:31:41,689 所以在這個電話簿,這不可否認, 我們不使用那麼多了, 630 00:31:41,689 --> 00:31:42,980 有待解決的問題。 631 00:31:42,980 --> 00:31:45,040 我們希望找到一個像邁克·史密斯。 632 00:31:45,040 --> 00:31:47,520 >> 而且我可以做什麼找邁克? 633 00:31:47,520 --> 00:31:51,197 好吧,我可以打開這個 書,開始在第一頁, 634 00:31:51,197 --> 00:31:52,780 實現,哦,我在一節。 635 00:31:52,780 --> 00:31:53,510 邁克不在那裡。 636 00:31:53,510 --> 00:31:55,510 我需要史密斯在S部分。 637 00:31:55,510 --> 00:31:58,192 所以,只要保持在同一時間開啟一頁。 638 00:31:58,192 --> 00:32:00,900 讓我假裝這是所有 白頁,而不是黃頁, 639 00:32:00,900 --> 00:32:02,910 因為我們不會找到 邁克黃頁反正。 640 00:32:02,910 --> 00:32:04,034 但是,我在白頁。 641 00:32:04,034 --> 00:32:05,340 而現在,我在B部分。 642 00:32:05,340 --> 00:32:06,810 我還沒有找到他。 643 00:32:06,810 --> 00:32:08,890 所以我一直在同一時間開啟一頁。 644 00:32:08,890 --> 00:32:10,130 >> 這是一種算法。 645 00:32:10,130 --> 00:32:12,440 它是一組指令 為解決一些問題。 646 00:32:12,440 --> 00:32:16,480 換句話說,看 頁面上,如果麥克的不就行了, 647 00:32:16,480 --> 00:32:20,020 翻頁,並重複 再,再而三, 648 00:32:20,020 --> 00:32:21,760 理想情況下低頭,你正在做的。 649 00:32:21,760 --> 00:32:24,120 所以該算法中, 這個過程中,是否正確? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> 抱歉。 652 00:32:28,830 --> 00:32:30,056 不,我聽到一些​​號。 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 OK,但它is--是啊, 它肯定乏味。 655 00:32:36,125 --> 00:32:39,000 就像,我們將在這裡一整天,如果我 保持在這個速度尋找邁克。 656 00:32:39,000 --> 00:32:41,430 但讓​​我聲稱它是正確的。 657 00:32:41,430 --> 00:32:43,850 這是愚蠢的,但它是正確的。 658 00:32:43,850 --> 00:32:47,209 >> 在一天結束時,只要它可能 走,我會找到邁克,如果他在那裡 659 00:32:47,209 --> 00:32:48,250 而我關注。 660 00:32:48,250 --> 00:32:50,230 我最終到達他的頁面。 661 00:32:50,230 --> 00:32:52,890 如果我太遠,如果 我得到的T形截面, 662 00:32:52,890 --> 00:32:55,900 然後,我可以稍微優化 而只是說,HM,全部完成。 663 00:32:55,900 --> 00:32:57,980 我甚至都不需要浪費 時間要到Z的。 664 00:32:57,980 --> 00:33:00,010 但是,這是一個非常 線性方法,如果你 665 00:33:00,010 --> 00:33:03,370 將一個很有幾分左到右 方法中,一條直線。 666 00:33:03,370 --> 00:33:05,560 而它的正確的,但速度慢。 667 00:33:05,560 --> 00:33:09,250 >> 所以我從小學記得,排序 從小學一年級學生的優化, 668 00:33:09,250 --> 00:33:13,756 在那裡我學會了如何不算數 由那些而是由twos--所以2,4,6。 669 00:33:13,756 --> 00:33:15,630 這是一個,要困難得多 這樣做,但在理論上,這是 670 00:33:15,630 --> 00:33:20,149 faster-- 8,10,12,14,等等。 671 00:33:20,149 --> 00:33:21,190 怎麼樣的算法? 672 00:33:21,190 --> 00:33:23,150 是不是更有效? 673 00:33:23,150 --> 00:33:23,880 是不是更快嗎? 674 00:33:23,880 --> 00:33:25,365 >> 聽眾:這是有效的。 675 00:33:25,365 --> 00:33:28,560 >> DAVID MALAN:是的,所以它的def--它的 從字面上快一倍,假設我 676 00:33:28,560 --> 00:33:30,170 不要讓她絆倒了我的手指。 677 00:33:30,170 --> 00:33:32,294 這是快一倍,因為 我轉向通過兩個 678 00:33:32,294 --> 00:33:36,560 一次,而不是一個網頁,但它是 潛在地正確的,因為為什麼呢? 679 00:33:36,560 --> 00:33:37,852 >> 聽眾:你跳過一些。 680 00:33:37,852 --> 00:33:41,185 DAVID MALAN:對,如果邁克會發生什麼 被也許sandwiched--當我後來 681 00:33:41,185 --> 00:33:44,370 在電話簿,麥克恰好是 夾在這兩個頁面之間, 682 00:33:44,370 --> 00:33:46,720 我只是一味地略過。 683 00:33:46,720 --> 00:33:48,490 因此,我們需要一點點修復那裡。 684 00:33:48,490 --> 00:33:51,290 有一次,我打了T形截面,我 不能只是自信地說, 685 00:33:51,290 --> 00:33:52,420 我們沒有找到邁克·史密斯。 686 00:33:52,420 --> 00:33:53,770 我大概有原路折回。 687 00:33:53,770 --> 00:34:00,210 或事實上,當我到達的人 命名為S-N,而不是S-M代表史密斯, 688 00:34:00,210 --> 00:34:02,790 馬上,我可能會增加一倍 回來了,因為也許他 689 00:34:02,790 --> 00:34:03,900 是以前的頁面上。 690 00:34:03,900 --> 00:34:05,070 >> 但我沒有遠加倍奉還。 691 00:34:05,070 --> 00:34:08,030 從理論上講,如果我這樣做,在合適的 那時,我剛回去一頁。 692 00:34:08,030 --> 00:34:10,139 因此它僅添加一個額外的步驟。 693 00:34:10,139 --> 00:34:13,070 所以,我已經走了快一倍, 但它花了我一個額外的頁面。 694 00:34:13,070 --> 00:34:14,699 但是,這感覺就像一個淨贏。 695 00:34:14,699 --> 00:34:17,230 >> 但是,這並不怎麼大多數人 這個房間將解決這個問題。 696 00:34:17,230 --> 00:34:20,313 什麼將一個典型的人,也許是 幾年前做的,找邁克·史密斯? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 是啊,沒發現邁克。 699 00:34:24,800 --> 00:34:27,190 我該怎麼辦? 700 00:34:27,190 --> 00:34:31,027 因此,獲得更近了一點,但我做的 知道 - 什麼是真正的關於電話簿? 701 00:34:31,027 --> 00:34:32,110 聽眾:這是連續的。 702 00:34:32,110 --> 00:34:32,760 DAVID MALAN:這是連續的。 703 00:34:32,760 --> 00:34:33,750 這是按字母順序排列。 704 00:34:33,750 --> 00:34:36,540 所以,如果我在M部分, 邁克顯然是正確的, 705 00:34:36,540 --> 00:34:39,949 我可以從字面上撕裂 在half--問題 706 00:34:39,949 --> 00:34:44,360 它通常比that--容易撕裂 一半的問題,並把它扔掉, 707 00:34:44,360 --> 00:34:47,627 所以現在,我有一個問題,這就是 不再是1000 pages--這是辛苦, 708 00:34:47,627 --> 00:34:50,210 因為我覺得我居然撕毀 電話簿這個時間 - 不 709 00:34:50,210 --> 00:34:52,219 1000頁,而500元。 710 00:34:52,219 --> 00:34:54,750 >> 所以,問題是字面上一半大。 711 00:34:54,750 --> 00:34:58,170 這是相當有吸引力的,因為 與我以前的算法,版本 712 00:34:58,170 --> 00:35:02,870 圖1和2,我只是使問題 一個頁面較小,兩頁小 713 00:35:02,870 --> 00:35:03,470 在一個時間。 714 00:35:03,470 --> 00:35:07,230 而現在,我做到了500 頁面的小的一次。 715 00:35:07,230 --> 00:35:10,089 >> 好了,現在,卡里姆建議 我去的右半部分。 716 00:35:10,089 --> 00:35:12,380 所以我要去大致 到中間,給予或採取。 717 00:35:12,380 --> 00:35:15,185 如果我這樣做數學, 我可以去正確的中間。 718 00:35:15,185 --> 00:35:17,060 而現在,我意識到,哦, 我在T節。 719 00:35:17,060 --> 00:35:18,280 其實我走得太遠。 720 00:35:18,280 --> 00:35:21,670 >> 但我可以再次撕裂 一半的問題,把它扔掉。 721 00:35:21,670 --> 00:35:23,330 而我的字節不一樣大。 722 00:35:23,330 --> 00:35:28,780 這只是什麼的,256頁或250 頁面,給予或現在服用。 723 00:35:28,780 --> 00:35:31,570 但它仍然方式更 超過一頁兩頁。 724 00:35:31,570 --> 00:35:33,345 >> 所以現在,我去大致中間。 725 00:35:33,345 --> 00:35:35,330 哦,我沒去很遠夠了。 726 00:35:35,330 --> 00:35:37,880 所以我重複,重複,重複, 重複,直到我希望 727 00:35:37,880 --> 00:35:40,360 只剩下一個頁面。 728 00:35:40,360 --> 00:35:44,000 >> 這樣邀請問題,如果我 開始的約1,000名頁面, 729 00:35:44,000 --> 00:35:47,340 做到了多少步帶我 我的算法1版本? 730 00:35:47,340 --> 00:35:50,420 好吧,如果邁克是在S 部,在最壞的情況下, 731 00:35:50,420 --> 00:35:52,630 這是相當接近 字母表的末尾。 732 00:35:52,630 --> 00:35:56,559 因此,如果電話本有1000頁, 我會在1000頁找到邁克, 733 00:35:56,559 --> 00:35:57,100 給予或採取。 734 00:35:57,100 --> 00:35:59,750 也許它就像800左右,但 這是相當接近1000。 735 00:35:59,750 --> 00:36:01,680 >> 然而,在第二 算法,多少 736 00:36:01,680 --> 00:36:06,840 翻頁最大可能我 需要找邁克·史密斯? 737 00:36:06,840 --> 00:36:09,970 有1000多頁,但我 在時間做他們二。 738 00:36:09,970 --> 00:36:13,045 對,所以最大似500ish,因為 如果我去通過整個電話簿, 739 00:36:13,045 --> 00:36:14,170 在這一點,我可以停止。 740 00:36:14,170 --> 00:36:16,669 但我可以刮掉一小部分被 只是停在T形截面。 741 00:36:16,669 --> 00:36:19,880 但它在最壞的情況下,500頁。 742 00:36:19,880 --> 00:36:24,710 >> 所以,我有多少次可以分割 1,00o頁電話簿中再次半 743 00:36:24,710 --> 00:36:30,450 並一次again--從 1000至500至250至125? 744 00:36:30,450 --> 00:36:32,250 多久之前,我打一個頁面? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 是啊,這是10個左右。 747 00:36:36,370 --> 00:36:40,780 根據舍入和這樣,它的 約10頁共需要開啟 748 00:36:40,780 --> 00:36:43,290 或電話簿需要被撕裂。 749 00:36:43,290 --> 00:36:44,710 >> 所以這是非常強大的。 750 00:36:44,710 --> 00:36:48,170 我們開始了1000頁的問題 在所有這三個故事。 751 00:36:48,170 --> 00:36:51,850 但是在第一種算法,它 拉著我,最壞的情況下,1000頁 752 00:36:51,850 --> 00:36:52,740 周折找到邁克。 753 00:36:52,740 --> 00:36:55,590 第二種算法,500 網頁找到邁克。 754 00:36:55,590 --> 00:36:58,480 第三個算法,10頁找到邁克。 755 00:36:58,480 --> 00:37:00,230 而且它更 強大的,當你認為 756 00:37:00,230 --> 00:37:01,860 有關排序相反的情景。 757 00:37:01,860 --> 00:37:05,680 假設電話公司下一個 今年也許合併兩個鄉鎮一起, 758 00:37:05,680 --> 00:37:08,550 和電話簿突然 這厚厚的,而不是說這個, 759 00:37:08,550 --> 00:37:12,470 所以2000頁,而不是1000。 760 00:37:12,470 --> 00:37:15,640 好吧,我的第一個算法尋找 邁克·史密斯在2000頁的電話本, 761 00:37:15,640 --> 00:37:21,460 更糟糕的情況下,要採取 明年有多少頁打開? 762 00:37:21,460 --> 00:37:24,800 >> 電話簿為2,000頁, so--好,不是一個。 763 00:37:24,800 --> 00:37:29,540 如果電話簿兩倍厚 第一算法,第一算法, 764 00:37:29,540 --> 00:37:30,380 2000,對不對? 765 00:37:30,380 --> 00:37:33,005 在最壞的情況下,邁克真的 關閉到書的結尾, 766 00:37:33,005 --> 00:37:34,110 所以它的2000翻頁。 767 00:37:34,110 --> 00:37:38,070 第二種算法通過去 三三兩兩,像1000頁。 768 00:37:38,070 --> 00:37:41,490 >> 但是怎麼樣在我的第三個 和最近算法? 769 00:37:41,490 --> 00:37:44,950 如果電話公司的一倍 從1000至2000的頁數, 770 00:37:44,950 --> 00:37:47,770 多少次需要我撕 那本書一半找到邁克? 771 00:37:47,770 --> 00:37:48,710 >> 聽眾:剛才之一。 772 00:37:48,710 --> 00:37:51,001 >> DAVID MALAN:只要多一個, 因為一個頁面撕裂, 773 00:37:51,001 --> 00:37:53,270 我可以從字面上分 和征服,如果你願意, 774 00:37:53,270 --> 00:37:57,410 在半則服用了這個問題 一個巨大的咬出來。 775 00:37:57,410 --> 00:38:01,420 所以這是一個例子 效率,可以說是一種算法 776 00:38:01,420 --> 00:38:04,100 與我們所有人都 排序直觀地熟悉。 777 00:38:04,100 --> 00:38:07,780 但它只是為正確 我的其他算法 778 00:38:07,780 --> 00:38:09,630 與對TWEAK 第二算法, 779 00:38:09,630 --> 00:38:11,290 但它是如此有效得多。 780 00:38:11,290 --> 00:38:14,030 >> 而事實上,什麼是計算機 科學家,或者反過來程序員, 781 00:38:14,030 --> 00:38:17,580 書寫時通常會做 代碼是揣摩, 782 00:38:17,580 --> 00:38:19,960 沒事,我不希望我的 節目剛是正確的, 783 00:38:19,960 --> 00:38:23,220 我也希望它是有效的 問題和解決問題很好。 784 00:38:23,220 --> 00:38:26,450 今天在現實世界中想像, 像谷歌索引,搜索 785 00:38:26,450 --> 00:38:31,580 像數十億個網頁,試想如果他們 使用第一算法來查找的貓 786 00:38:31,580 --> 00:38:34,620 一個十億pages--看著之中 第一頁在他們的數據庫, 787 00:38:34,620 --> 00:38:37,700 第二個,第三個,只是尋找 一隻貓,尋找一隻貓。 788 00:38:37,700 --> 00:38:40,350 這是相當不錯的減緩它似乎。 789 00:38:40,350 --> 00:38:43,170 他們可以改用東西 稱為二進制搜索,這 790 00:38:43,170 --> 00:38:47,420 沒有coincidence--雙向含義二,我們 不斷分裂東西2,在half-- 791 00:38:47,420 --> 00:38:50,205 他們可以使用二進制搜索 也許找貓甚至更快, 792 00:38:50,205 --> 00:38:51,830 或不管它是你正在尋找。 793 00:38:51,830 --> 00:38:54,125 >> 坦率地說,有 更炫的算法 794 00:38:54,125 --> 00:38:56,250 該做的不僅僅是更多 分東西兩半 795 00:38:56,250 --> 00:38:58,180 為了快速查找信息。 796 00:38:58,180 --> 00:39:00,880 我們將討論一點點 今天的午飯後。 797 00:39:00,880 --> 00:39:02,640 因此,讓我只能盡力代表這一點。 798 00:39:02,640 --> 00:39:05,380 我們並不需要進入 任何數學或實際數字。 799 00:39:05,380 --> 00:39:07,070 我們可以抽​​象地談論這個。 800 00:39:07,070 --> 00:39:11,580 >> 但讓​​我求婚,如果你 現在是具有討論 801 00:39:11,580 --> 00:39:13,491 與工程師 提出這種算法 802 00:39:13,491 --> 00:39:15,490 而你試圖讓 計算的決定, 803 00:39:15,490 --> 00:39:17,285 因為也許 工程師對你說,你 804 00:39:17,285 --> 00:39:19,910 知道嗎,我可以實現 像2分鐘線性搜索。 805 00:39:19,910 --> 00:39:21,150 就是這麼簡單。 806 00:39:21,150 --> 00:39:24,790 二進制搜索是不是花哨,但 它會帶我像10分鐘, 807 00:39:24,790 --> 00:39:26,650 所以5倍長。 808 00:39:26,650 --> 00:39:30,900 >> 有一個行業在這裡,即使是在條件 在決定寫什麼軟件。 809 00:39:30,900 --> 00:39:34,760 你寫的簡單算法, 這將只是把你們倆分鐘呢? 810 00:39:34,760 --> 00:39:39,880 或者你花更多的時間,10分鐘, 寫愛好者算法? 811 00:39:39,880 --> 00:39:43,540 你如何決定樣的問題​​? 812 00:39:43,540 --> 00:39:46,710 或者你可以讓它多了幾分真實。 813 00:39:46,710 --> 00:39:50,610 我告訴我的老闆是要採取 我任何一個星期10週 814 00:39:50,610 --> 00:39:52,490 實施 在這種方式的軟件,如何 815 00:39:52,490 --> 00:39:56,103 你決定哪些 算法綠燈? 816 00:39:56,103 --> 00:39:56,603 卡里姆? 817 00:39:56,603 --> 00:39:57,550 >> 聽眾:觀眾,我猜。 818 00:39:57,550 --> 00:39:57,960 >> DAVID MALAN:觀眾。 819 00:39:57,960 --> 00:39:59,460 你說的觀眾呢? 820 00:39:59,460 --> 00:40:03,460 >> 聽眾:如果它是怎麼回事 由用戶使用 821 00:40:03,460 --> 00:40:09,050 誰[聽不清]使用者[聽不清]。 822 00:40:09,050 --> 00:40:11,232 但是,如果它的東西你 只是在做自己 823 00:40:11,232 --> 00:40:13,946 便利的問題, [聽不清]更快。 824 00:40:13,946 --> 00:40:16,820 DAVID MALAN:是的,它的快速和 臟來形容它的好方法。 825 00:40:16,820 --> 00:40:18,695 事實上,如果你是 描述了很多我的時間 826 00:40:18,695 --> 00:40:23,630 在研究生院,其中很多時候, 我寫了糟糕的代碼自覺so-- 827 00:40:23,630 --> 00:40:26,490 至少,這就是我如何 合理化它 - 那麼自覺, 828 00:40:26,490 --> 00:40:30,670 因為即使我在寫代碼 這是執行相對緩慢, 829 00:40:30,670 --> 00:40:33,750 我能寫代碼本身 相當快,支出僅幾分鐘 830 00:40:33,750 --> 00:40:35,107 或小時而不是幾天。 831 00:40:35,107 --> 00:40:37,190 而事實證明,我 偶爾需要睡覺。 832 00:40:37,190 --> 00:40:41,270 所以,即使我的代碼需要8 小時運行,很好,很好, 833 00:40:41,270 --> 00:40:42,850 我只是走在它運行時睡覺。 834 00:40:42,850 --> 00:40:46,350 >> 所以在當時,我認為這是 很巧,即使我顯然 835 00:40:46,350 --> 00:40:48,990 通過我的博士工作非常慢。 836 00:40:48,990 --> 00:40:52,270 但是,反過來是 即,如果我寫的軟件 837 00:40:52,270 --> 00:40:55,930 其他人誰 更要緊比我好, 838 00:40:55,930 --> 00:40:59,580 讓他們等候8小時 拿回自己的搜索結果 839 00:40:59,580 --> 00:41:01,350 是不是所有的引人注目。 840 00:41:01,350 --> 00:41:04,090 所以,花更多的時間 前面編寫軟件 841 00:41:04,090 --> 00:41:07,300 即更高效,更 像我們的第三個算法, 842 00:41:07,300 --> 00:41:09,780 可能有利於用戶在一段時間。 843 00:41:09,780 --> 00:41:12,710 因此,它實際上取決於在 時間如何將這些費用加起來。 844 00:41:12,710 --> 00:41:14,960 如果你將要寫作 軟件使用一次, 845 00:41:14,960 --> 00:41:17,240 可能還不如做 快速和骯髒的,因為他們說。 846 00:41:17,240 --> 00:41:18,198 只是把它在一起。 847 00:41:18,198 --> 00:41:20,560 它的代碼尷尬 你,這是如此糟糕, 848 00:41:20,560 --> 00:41:23,860 但它得到正確地完成任務, 即使它是沒​​有效率。 849 00:41:23,860 --> 00:41:27,200 相反,你花更多的時間 的東西,得到它恰到好處。 850 00:41:27,200 --> 00:41:30,730 然後攤銷隨著時間的推移, 時間的前期費用 851 00:41:30,730 --> 00:41:34,330 也許是值得的,如果你繼續 優化為常見的情況。 852 00:41:34,330 --> 00:41:37,620 >> 事實上,這是在一個主題 編程,或計算機科學更多 853 00:41:37,620 --> 00:41:41,390 通常,試圖優化 不是為罕見的情況下 854 00:41:41,390 --> 00:41:44,390 但共同的case--什麼操作 是要一次又一次地發生? 855 00:41:44,390 --> 00:41:47,730 如果你想擁有數十億美元 用戶搜索您的網站上, 856 00:41:47,730 --> 00:41:52,030 你應該花額外的 週前面編寫更好的軟件, 857 00:41:52,030 --> 00:41:53,670 讓所有的用戶受益。 858 00:41:53,670 --> 00:41:57,840 現在,讓我們嘗試捕捉這個 形象地少,但沒有這麼多 859 00:41:57,840 --> 00:41:58,610 數字。 860 00:41:58,610 --> 00:42:01,680 >> 因此,這裡只是一個老同學的圖表。 861 00:42:01,680 --> 00:42:04,260 讓我說,這就是時間。 862 00:42:04,260 --> 00:42:06,660 並不要緊what-- 其實,不,不是的時間。 863 00:42:06,660 --> 00:42:08,320 讓我們把那另一個軸。 864 00:42:08,320 --> 00:42:15,700 讓我們說,這是時間, 這就是問題的大小。 865 00:42:15,700 --> 00:42:17,830 >> 和一個計算機科學家 通常可能調用 866 00:42:17,830 --> 00:42:20,820 這僅僅局限於N。 n是像 我們去到變量中,其中 867 00:42:20,820 --> 00:42:26,351 n是一個數,n個,以及它的 你有任何的投入數量。 868 00:42:26,351 --> 00:42:28,100 因此,在這種情況下,n是 的頁數。 869 00:42:28,100 --> 00:42:30,150 所以它可能是1000中 的情況下,我們只是告訴。 870 00:42:30,150 --> 00:42:31,969 >> 所以,時間可以是任何計量單位。 871 00:42:31,969 --> 00:42:32,760 也許,這是第二次。 872 00:42:32,760 --> 00:42:33,410 也許,這是天。 873 00:42:33,410 --> 00:42:34,590 也許,這就像翻頁。 874 00:42:34,590 --> 00:42:35,215 沒關係。 875 00:42:35,215 --> 00:42:38,840 無論你希望計算,即 將時間或等效的成本。 876 00:42:38,840 --> 00:42:42,400 >> 因此,與第一個 算法,如果我,例如, 877 00:42:42,400 --> 00:42:45,920 有一個1000頁的電話本, 我要畫一個點那裡, 878 00:42:45,920 --> 00:42:51,450 因為如果它是1000頁,花了 大約1000翻頁,給予或採取。 879 00:42:51,450 --> 00:42:54,100 然後,如果我有一個 2000頁的電話本, 880 00:42:54,100 --> 00:42:57,200 我要去畫第二 在此點,因為2000頁, 881 00:42:57,200 --> 00:42:59,810 它就像2000秒 或翻頁或什麼的。 882 00:42:59,810 --> 00:43:02,480 因此,當我前面說的,這是 樣的線性關係, 883 00:43:02,480 --> 00:43:06,020 這是故意的,因為我想 後來on--權now--劃清界限。 884 00:43:06,020 --> 00:43:07,770 這是怎樣的一個直 行的關係。 885 00:43:07,770 --> 00:43:10,180 斜率是1/1,如果你願意。 886 00:43:10,180 --> 00:43:14,630 >> 同時,第二算法 說,如果你有1000頁 887 00:43:14,630 --> 00:43:17,680 而你使用第二算法, 在那裡我數2的,把 888 00:43:17,680 --> 00:43:22,564 同時兩頁,我要畫一個 點低於或者高於我的原始點? 889 00:43:22,564 --> 00:43:23,450 >> 聽眾:下面。 890 00:43:23,450 --> 00:43:27,992 >> DAVID MALAN:下面,因為正如我們所看到的, 它需要較少的時間,一半多的時間。 891 00:43:27,992 --> 00:43:29,950 所以點應該是一半 高達另一個。 892 00:43:29,950 --> 00:43:33,330 而同樣的協議在這裡,此點 也許應該是大致那裡。 893 00:43:33,330 --> 00:43:39,666 所以我的第二個算法,同樣地, 具有隨時間的線性關係。 894 00:43:39,666 --> 00:43:41,990 而且我們可以得出它是這樣。 895 00:43:41,990 --> 00:43:45,950 >> 所以,現在,第三個和最後 算法是有點難以得出。 896 00:43:45,950 --> 00:43:49,530 但是直覺,如果我有1000 我的第三個算法的網頁, 897 00:43:49,530 --> 00:43:52,340 它應該只把我像10步。 898 00:43:52,340 --> 00:43:57,500 如果我有2000頁 我的第三個算法, 899 00:43:57,500 --> 00:44:01,570 應採取我不要10 步驟,但11,只是多一個。 900 00:44:01,570 --> 00:44:03,610 因此,我們只能勉強維持會看到這一點。 901 00:44:03,610 --> 00:44:06,010 >> 而事實證明,如果 我放大此,我 902 00:44:06,010 --> 00:44:09,320 要誇大的效果, 該線的形狀,最終 903 00:44:09,320 --> 00:44:11,990 不是直line-- 因為,事實上,如果它是, 904 00:44:11,990 --> 00:44:15,390 它看起來更像 others--它實際上是一個曲線 905 00:44:15,390 --> 00:44:19,265 ,如果我們放大,是怎麼回事 看起來更像這一點。 906 00:44:19,265 --> 00:44:21,670 它 - 嗯,好吧,忽略這一部分。 907 00:44:21,670 --> 00:44:25,330 這是我的鋼筆一樣的角度。 908 00:44:25,330 --> 00:44:29,000 這是一個曲線,就是始終 越來越多,永遠,永遠,永遠 909 00:44:29,000 --> 00:44:32,100 增加,但只是勉強。 910 00:44:32,100 --> 00:44:36,260 >> 所以,隨著時間的推移,你有一個 關係,即更喜歡這個。 911 00:44:36,260 --> 00:44:37,540 它看起來幾乎筆直。 912 00:44:37,540 --> 00:44:40,330 但它是非常緩慢地上升。 913 00:44:40,330 --> 00:44:44,780 但沿著幾乎所有的點 您的x軸,水平軸, 914 00:44:44,780 --> 00:44:46,550 它比其他行低。 915 00:44:46,550 --> 00:44:49,930 >> 所以這可能是一個關係 N,因此,如果您有n頁, 916 00:44:49,930 --> 00:44:51,100 你需要n秒。 917 00:44:51,100 --> 00:44:53,320 這可能是有關係的n / 2。 918 00:44:53,320 --> 00:44:56,710 您有n個網頁,它需要 你N / 2秒,一半多。 919 00:44:56,710 --> 00:45:00,590 而這是一個對數 關係,這 920 00:45:00,590 --> 00:45:08,920 如果你還記得,日誌N捕獲基地2 這種增長,可以這麼說。 921 00:45:08,920 --> 00:45:12,000 因此,這是何許神聖 在這三個中的聖杯 922 00:45:12,000 --> 00:45:15,940 在這裡,因為它只是這麼多 高效,但可以說更複雜 923 00:45:15,940 --> 00:45:18,610 實現。 924 00:45:18,610 --> 00:45:20,510 任何問題? 925 00:45:20,510 --> 00:45:26,220 >> 那麼,讓我做到這一點,讓 我打開一個文本窗口 926 00:45:26,220 --> 00:45:29,100 只是讓我們可以嘗試 在這裡正式的東西。 927 00:45:29,100 --> 00:45:32,410 所以,現在讓我繼續前進, 實現這個算法 928 00:45:32,410 --> 00:45:35,170 在代碼中發現邁克·史密斯, 如果你願意,偽碼。 929 00:45:35,170 --> 00:45:36,620 我不打算使用Java或C ++。 930 00:45:36,620 --> 00:45:38,610 我只是要使用排序 英語的語法,這是我們 931 00:45:38,610 --> 00:45:40,151 一般會叫偽代碼。 932 00:45:40,151 --> 00:45:41,660 在這裡,我有一個空白窗口。 933 00:45:41,660 --> 00:45:48,180 而且我說的很第一步 第一種算法是拿起電話簿。 934 00:45:48,180 --> 00:45:51,740 第二步是開卷第一頁。 935 00:45:51,740 --> 00:45:58,080 步驟3將看 麥克·史密斯頁面。 936 00:45:58,080 --> 00:46:02,740 如果頁面上,叫麥克。 937 00:46:02,740 --> 00:46:11,640 其他依次頁,轉到第3步。 938 00:46:11,640 --> 00:46:13,590 完成後,讓我們說。 939 00:46:13,590 --> 00:46:18,110 >> 所以它不是相當完美, 我們將看到一個時刻。 940 00:46:18,110 --> 00:46:21,050 但是,讓我們考慮一下 概念我在這裡介紹。 941 00:46:21,050 --> 00:46:24,450 所以步驟1和2和3 有相當多的動詞。 942 00:46:24,450 --> 00:46:26,544 他們聲明,actions--做到這一點。 943 00:46:26,544 --> 00:46:28,710 因此在編程 語言,我們一般會 944 00:46:28,710 --> 00:46:32,349 叫他們陳述或 函數或過程, 945 00:46:32,349 --> 00:46:33,640 打電話給他們許多東西。 946 00:46:33,640 --> 00:46:35,460 但他們只是actions--做到這一點。 947 00:46:35,460 --> 00:46:40,370 >> 第4步是根本不同的, 因為它是一種問一個問題。 948 00:46:40,370 --> 00:46:42,400 它說我們是一種 的在一個岔路口。 949 00:46:42,400 --> 00:46:48,000 如果麥克在頁面上,請致電 他,所以左轉,如果你願意。 950 00:46:48,000 --> 00:46:52,170 如果沒有,回去一定 其他page--或者說,對不起, 951 00:46:52,170 --> 00:46:56,650 回去一些其他步驟,其中 導致某種循環結構。 952 00:46:56,650 --> 00:46:59,530 而我們一次又一次地做一遍。 953 00:46:59,530 --> 00:47:01,300 >> 而實際上,你知道嗎? 954 00:47:01,300 --> 00:47:01,800 是啊。 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 否則,如果在書站結束。 957 00:47:09,010 --> 00:47:11,624 因此,我們需要怎樣的一個第三 狀態,因為你 958 00:47:11,624 --> 00:47:14,290 不能讓翻頁廣告 nauseum,因為最終,我會 959 00:47:14,290 --> 00:47:15,320 撞書的結尾。 960 00:47:15,320 --> 00:47:18,546 並且在一個程序中的錯誤可能是 沒有預見到的情況。 961 00:47:18,546 --> 00:47:21,420 然後我才意識到,哦,等等 一分鐘,我需要第三個場景。 962 00:47:21,420 --> 00:47:23,900 如果我出的網頁,我 真的應該只停留。 963 00:47:23,900 --> 00:47:25,330 否則,它是不確定的。 964 00:47:25,330 --> 00:47:29,260 這是怎麼回事,如果我繼續發生 說翻過這一頁,回去, 965 00:47:29,260 --> 00:47:31,810 這是當電腦 死機或崩潰,當你打 966 00:47:31,810 --> 00:47:34,160 一些未預料到的情況那樣。 967 00:47:34,160 --> 00:47:37,280 >> 現在,邁克 史密斯的第三算法 - 968 00:47:37,280 --> 00:47:43,150 拿起電話本, 翻書序曲一到 969 00:47:43,150 --> 00:47:48,640 不,不是第一頁這個時候, 到middle--哦,嗯,那倒是 970 00:47:48,640 --> 00:47:49,640 是第二算法。 971 00:47:49,640 --> 00:47:50,590 讓我們只是跳到第三。 972 00:47:50,590 --> 00:47:50,930 >> 聽眾:哦,對不起。 973 00:47:50,930 --> 00:47:51,971 >> DAVID MALAN:那很好。 974 00:47:51,971 --> 00:47:58,590 讓我們只是跳到third--開放 以中,現在找邁克·史密斯。 975 00:47:58,590 --> 00:48:02,300 如果頁面上,叫麥克。 976 00:48:02,300 --> 00:48:04,910 然後,我們究竟要在這裡說什麼? 977 00:48:04,910 --> 00:48:06,134 還有什麼? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 我們可以表達這種 在任何數量的方式。 980 00:48:12,370 --> 00:48:13,369 有沒有正確的答案。 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 好吧,如果不再,但我們需要 be-- OK,我們確實需要兩分, 983 00:48:23,735 --> 00:48:25,630 但做我們想要去向左或向右走? 984 00:48:25,630 --> 00:48:29,560 我們如何表達這一概念? 985 00:48:29,560 --> 00:48:31,790 那麼,在小李的情況下,是的,這是公平的。 986 00:48:31,790 --> 00:48:35,050 但是好了,這實際上是一個很好的點。 987 00:48:35,050 --> 00:48:35,550 沒關係。 988 00:48:35,550 --> 00:48:36,924 我們將繼續與這個邏輯下去。 989 00:48:36,924 --> 00:48:38,182 所以 - 990 00:48:38,182 --> 00:48:39,810 >> 聽眾:不到一半。 991 00:48:39,810 --> 00:48:40,560 DAVID MALAN:是的。 992 00:48:40,560 --> 00:48:49,820 所以,如果別的頁面,我們會說,少 比·史密斯,史密斯的左側, 993 00:48:49,820 --> 00:48:52,220 then--讓我們來看看,是 這要複雜? 994 00:48:52,220 --> 00:49:01,885 否則,如果屏幕出現之前,史密斯, 撕了一半,扔掉哪一半? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> 聽眾:我想 這是[聽不清]。 997 00:49:09,140 --> 00:49:11,650 >> DAVID MALAN:我聽說兩個答案。 998 00:49:11,650 --> 00:49:12,431 >> 聽眾:左。 999 00:49:12,431 --> 00:49:14,430 DAVID MALAN:OK,扔 遠的左半邊,如Lakisa 1000 00:49:14,430 --> 00:49:19,700 前面說了,左 一半的話,我有種 1001 00:49:19,700 --> 00:49:23,940 想只是去中場休息,我去的權利。 1002 00:49:23,940 --> 00:49:27,380 或等價的,我做了一個小 一開始的有點亂在這裡, 1003 00:49:27,380 --> 00:49:30,760 我切實想 再去步驟2, 1004 00:49:30,760 --> 00:49:38,270 其中,開到middle--或open-- 是的,我們只能說,頁面中間。 1005 00:49:38,270 --> 00:49:39,020 而這種修復它。 1006 00:49:39,020 --> 00:49:39,936 它不再是一本書。 1007 00:49:39,936 --> 00:49:42,210 這只是一本書的一半, 如此開放頁面中間。 1008 00:49:42,210 --> 00:49:44,010 >> else--是幾乎沒有。 1009 00:49:44,010 --> 00:49:54,000 第6步,否則,如果屏幕出現後,史密斯, 撕成兩半,扔掉右前衛, 1010 00:49:54,000 --> 00:49:55,680 然後轉到步驟2。 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 別的不干了,第四個情況下,如果 我們沒有離開頁面打開。 1013 00:50:05,230 --> 00:50:06,394 這樣我們就可以打掃一下。 1014 00:50:06,394 --> 00:50:07,560 我們應該打掃一下。 1015 00:50:07,560 --> 00:50:10,656 這是很偽代碼,如果你 會的,非常高的水平的描述。 1016 00:50:10,656 --> 00:50:12,280 但它確實一般拍攝的想法。 1017 00:50:12,280 --> 00:50:16,040 >> 並再次,在這種情況下,我們 有一個條件的概念, 1018 00:50:16,040 --> 00:50:20,450 一個分支,在一個岔路口,使得 一個decision--如果,走這條路, 1019 00:50:20,450 --> 00:50:23,082 否則如果走這條路, 否則如果走那條路。 1020 00:50:23,082 --> 00:50:25,040 而這是一個非常普遍的 編程技術 1021 00:50:25,040 --> 00:50:27,721 決定哪個方向 去,可以這麼說。 1022 00:50:27,721 --> 00:50:29,970 我們也有一些 的循環結構,其中 1023 00:50:29,970 --> 00:50:32,440 我們一次又一次地做一些事情。 1024 00:50:32,440 --> 00:50:34,820 >> 現在,事實證明,很多 如在本實施例中, 1025 00:50:34,820 --> 00:50:37,660 作為超級精確是非常重要的。 1026 00:50:37,660 --> 00:50:42,180 但是,我們也看到了一些 我們保持通話抽象。 1027 00:50:42,180 --> 00:50:45,490 這是什麼意思拿起電話簿? 1028 00:50:45,490 --> 00:50:47,740 我們只是那種服用 理所當然的在這個房間 1029 00:50:47,740 --> 00:50:49,340 這是有一定的語義。 1030 00:50:49,340 --> 00:50:51,740 我們都只是一種知道,哦, 好了,拿起電話本。 1031 00:50:51,740 --> 00:50:52,864 這是什麼究竟意味著什麼? 1032 00:50:52,864 --> 00:50:59,060 嗯,這實際上意味著延長 手,俯身,延長手指, 1033 00:50:59,060 --> 00:51:03,890 手指之間捏書, 站起來,用手拉向你。 1034 00:51:03,890 --> 00:51:05,940 我們可以真正做到 迂腐這一點, 1035 00:51:05,940 --> 00:51:08,640 真的是超級精確 至於我在做什麼。 1036 00:51:08,640 --> 00:51:13,300 但是,所有這些步驟都統稱 這意味著什麼,拿起了電話本。 1037 00:51:13,300 --> 00:51:16,940 >> 因此更早的時候,我說,每 前兩個語句 1038 00:51:16,940 --> 00:51:20,830 可以被認為是一個 繼續或函數, 1039 00:51:20,830 --> 00:51:24,090 實際上它代表了我們 保持通話的抽象。 1040 00:51:24,090 --> 00:51:28,770 這就像一個高層次的概念 的問題的說明那 1041 00:51:28,770 --> 00:51:31,110 實際上涉及相當多的步驟。 1042 00:51:31,110 --> 00:51:34,190 所以這一點,也是一個 在編程中經常性的話題, 1043 00:51:34,190 --> 00:51:41,125 因此我可能會寫一個程序 使用語法像this-- 1044 00:51:41,125 --> 00:51:42,000 pick_up_phone_book()。 1045 00:51:42,000 --> 00:51:44,344 1046 00:51:44,344 --> 00:51:46,510 然後,語法,我 要偷東西 1047 00:51:46,510 --> 00:51:48,090 從大多數編程語言。 1048 00:51:48,090 --> 00:51:51,270 >> 現在,第1步看起來更加 更像是一個函數, 1049 00:51:51,270 --> 00:51:53,160 作為一個程序員調用它。 1050 00:51:53,160 --> 00:51:58,650 它看起來像代碼有人 給一個名稱,並給予 1051 00:51:58,650 --> 00:52:03,300 我在其他使用somehow-- 也就是說,什麼線我突出 1052 00:52:03,300 --> 00:52:07,050 代表的功能,也許 我甚至沒有實現自己。 1053 00:52:07,050 --> 00:52:10,410 有人年長,比聰明 我已經想通了 1054 00:52:10,410 --> 00:52:12,700 如何表達你的觀點 的拿起電話簿。 1055 00:52:12,700 --> 00:52:15,860 它就像五個步驟我只是 列舉了,把我的頭頂部。 1056 00:52:15,860 --> 00:52:19,350 >> 但他或她已經實現 這一點,給了那些幾個步驟 1057 00:52:19,350 --> 00:52:22,339 一個名字,pick_up_phone_book。 1058 00:52:22,339 --> 00:52:24,380 而括號是 正是大多數程序員 1059 00:52:24,380 --> 00:52:27,100 在做這樣的語句的結束。 1060 00:52:27,100 --> 00:52:30,190 我現在能站在他或她的 肩膀再也沒有, 1061 00:52:30,190 --> 00:52:32,465 想想這意味著什麼 拿起電話簿。 1062 00:52:32,465 --> 00:52:34,090 我只能說,拿起電話簿。 1063 00:52:34,090 --> 00:52:36,690 而這正是 我們所有的人在這裡做。 1064 00:52:36,690 --> 00:52:38,940 >> 當我們大概1 歲,2歲時, 1065 00:52:38,940 --> 00:52:41,690 有人曾教給我們什麼 為了拿起電話簿。 1066 00:52:41,690 --> 00:52:43,810 從那之後, 我們已經抽象化了 1067 00:52:43,810 --> 00:52:46,739 從這些很無趣 機械步驟。 1068 00:52:46,739 --> 00:52:48,530 我們只是有一個 直觀的了解 1069 00:52:48,530 --> 00:52:50,480 中意味著什麼 拿起電話簿。 1070 00:52:50,480 --> 00:52:55,730 >> 你現在可以推斷 更複雜的things-- 1071 00:52:55,730 --> 00:52:57,640 建築大樓。 1072 00:52:57,640 --> 00:52:59,940 像對某些人來說, 實際上具有意義。 1073 00:52:59,940 --> 00:53:03,080 承包商,建築師, 有一定的意義。 1074 00:53:03,080 --> 00:53:06,400 他們會知道該怎麼做,如果 我說,去構建一個建築。 1075 00:53:06,400 --> 00:53:10,520 >> 但在房間裡我們大多數人不能 處理抽象的那個級別。 1076 00:53:10,520 --> 00:53:14,850 你需要告訴我們喜歡去拿 鏟去得到具體 1077 00:53:14,850 --> 00:53:17,250 並釘上木塊 一起和其他任何 1078 00:53:17,250 --> 00:53:18,830 參與建設的建築。 1079 00:53:18,830 --> 00:53:21,690 那是因為我們還沒有 尚未被編程理解 1080 00:53:21,690 --> 00:53:23,629 這意味著什麼建築大樓。 1081 00:53:23,629 --> 00:53:24,920 我們沒有這樣的抽象。 1082 00:53:24,920 --> 00:53:26,570 我們沒有這個功能。 1083 00:53:26,570 --> 00:53:29,930 >> 所以你會看到 編程語言,在一般情況下, 1084 00:53:29,930 --> 00:53:34,570 尤其是更現代的語言, 像Java,PHP和Ruby和Python, 1085 00:53:34,570 --> 00:53:37,610 他們更成熟 比舊的語言, 1086 00:53:37,610 --> 00:53:40,140 像C和C ++,但其他人。 1087 00:53:40,140 --> 00:53:42,580 因此他們提出更多 功能內置的。 1088 00:53:42,580 --> 00:53:45,640 更多的代碼已被寫入 人們過去 1089 00:53:45,640 --> 00:53:50,520 我們現在可以通過電話或 召喚或使用,因為我暗示 1090 00:53:50,520 --> 00:53:52,231 在這個位置突出顯示的行。 1091 00:53:52,231 --> 00:53:55,230 所以,即使我們不說話 大約本身的編程語言, 1092 00:53:55,230 --> 00:54:00,230 只是偽代碼,所有的 想法仍然在討論中。 1093 00:54:00,230 --> 00:54:04,600 而事實證明精度 超級重要的,是抽象。 1094 00:54:04,600 --> 00:54:06,570 讓我們試著 傳達如下。 1095 00:54:06,570 --> 00:54:11,000 >> 我不小心可能會被寵壞 這個在屏幕上閃爍的幻燈片 1096 00:54:11,000 --> 00:54:12,260 過早。 1097 00:54:12,260 --> 00:54:16,550 但讓​​我問一個勇敢的志願者, 如果你不介意的話來了。 1098 00:54:16,550 --> 00:54:19,040 你會在前面 相機,如果你與確定。 1099 00:54:19,040 --> 00:54:24,950 有沒有人願意來,並給 說明在這裡你的同事? 1100 00:54:24,950 --> 00:54:29,540 只要有到這裡來和 站在這裡了,說一些話。 1101 00:54:29,540 --> 00:54:32,890 >> 維多利亞是微笑最 並避免我的眼睛最。 1102 00:54:32,890 --> 00:54:34,740 你願意來上了? 1103 00:54:34,740 --> 00:54:35,240 好。 1104 00:54:35,240 --> 00:54:38,480 如果每個人都在你的座位 可以拿出一張廢紙, 1105 00:54:38,480 --> 00:54:39,750 如果你願意。 1106 00:54:39,750 --> 00:54:40,760 橫格紙是罰款。 1107 00:54:40,760 --> 00:54:41,990 過來這樣。 1108 00:54:41,990 --> 00:54:44,580 或某些紙張的那 你昨天給予, 1109 00:54:44,580 --> 00:54:46,493 隨便一個空白頁 紙,如果你能。 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 如果你沒有任何,只 如果你可以問你的鄰居。 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> 所以,就目前而言,對於 本例中,維 1114 00:55:07,580 --> 00:55:11,520 將要發揮的作用 一個程序員,工程師,誰 1115 00:55:11,520 --> 00:55:16,130 需要你的程序是,作為 電腦,做一些事情。 1116 00:55:16,130 --> 00:55:19,570 我們會看到什麼假設 你決定做。 1117 00:55:19,570 --> 00:55:22,700 我們將看到她選擇的精確度是。 1118 00:55:22,700 --> 00:55:26,220 如果這個演示雲 教學上很好,很多錯誤 1119 00:55:26,220 --> 00:55:29,220 將作出,我們會再使用 隨著討論的機會。 1120 00:55:29,220 --> 00:55:32,010 但你應該挑戰 要避免這些錯誤, 1121 00:55:32,010 --> 00:55:32,896 成為一個優秀的程序員。 1122 00:55:32,896 --> 00:55:35,520 因此在手的挑戰,如果 你喜歡在這裡走了過來, 1123 00:55:35,520 --> 00:55:38,799 在屏幕上的維多利亞前 這裡 - 並希望,沒有你 1124 00:55:38,799 --> 00:55:40,590 當我記得這個 閃現在屏幕上。 1125 00:55:40,590 --> 00:55:44,097 不要轉身可言,因為 還有另外一個屏幕在這個房間 1126 00:55:44,097 --> 00:55:44,930 我可以關掉。 1127 00:55:44,930 --> 00:55:46,620 所以,不要回頭。 1128 00:55:46,620 --> 00:55:49,090 >> 在維多利亞面前 是一樣的尖叫。 1129 00:55:49,090 --> 00:55:54,170 而她現在的工作是告訴你 你一張紙上畫什麼。 1130 00:55:54,170 --> 00:55:57,020 我們將看到,基於 單單口頭指示, 1131 00:55:57,020 --> 00:56:00,020 計算機代碼,如果你願意, 如何準確的圖紙 1132 00:56:00,020 --> 00:56:02,330 are--你的實現是。 1133 00:56:02,330 --> 00:56:02,980 合理? 1134 00:56:02,980 --> 00:56:03,604 >> 聽眾:是的。 1135 00:56:03,604 --> 00:56:04,980 DAVID MALAN:OK,執行。 1136 00:56:04,980 --> 00:56:06,030 >> 聽眾:畫一個正方形。 1137 00:56:06,030 --> 00:56:09,050 >> [笑聲] 1138 00:56:09,050 --> 00:56:12,310 >> DAVID MALAN:而且沒有 問題可能會問。 1139 00:56:12,310 --> 00:56:13,720 只能做有人告訴你什麼。 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 哦,如果你有今天的幻燈片 在標籤頁中打開,不看你的標籤。 1142 00:56:22,550 --> 00:56:23,670 好? 1143 00:56:23,670 --> 00:56:26,135 >> 聽眾:OK,畫一個圓。 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 一個slope--我能說的斜率? 1146 00:56:34,872 --> 00:56:35,830 DAVID MALAN:給你。 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 聽眾:一個斜坡。 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 和一個三角形。 1151 00:56:49,795 --> 00:56:50,850 >> DAVID MALAN:好的。 1152 00:56:50,850 --> 00:56:52,286 而在這裡呆一會兒就好了。 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 而且我要來 在短短的時刻左右。 1155 00:56:58,910 --> 00:57:02,420 沒必要把你們的名字。 1156 00:57:02,420 --> 00:57:05,030 讓我來到我身邊 收集您的圖紙, 1157 00:57:05,030 --> 00:57:08,330 如果你不介意撕裂出來。 1158 00:57:08,330 --> 00:57:12,110 >> 下面是我們回來。 1159 00:57:12,110 --> 00:57:14,770 我會投影在屏幕上。 1160 00:57:14,770 --> 00:57:18,310 我看到一個正方形,圓形, 一個斜率和一個三角形。 1161 00:57:18,310 --> 00:57:20,130 所以這是一個答案在那裡。 1162 00:57:20,130 --> 00:57:23,640 和let's--哎呦。 1163 00:57:23,640 --> 00:57:25,370 謝謝。 1164 00:57:25,370 --> 00:57:30,710 這裡的另一個品種, 和一個它的後面。 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> 因此,他們似乎都捕捉到的精神。 1167 00:57:37,120 --> 00:57:38,600 謝謝。 1168 00:57:38,600 --> 00:57:44,970 還有一個,這裡是另外一個。 1169 00:57:44,970 --> 00:57:51,590 斜坡的解釋是 有點不同,有點彎曲。 1170 00:57:51,590 --> 00:57:57,140 與最接近的,或者是因為 與你已經特異性精彩 1171 00:57:57,140 --> 00:58:03,520 描述的,或者你有種 看到它之前,這確實是 1172 00:58:03,520 --> 00:58:06,340 維多利亞什麼實際描述。 1173 00:58:06,340 --> 00:58:09,190 >> 但現在,那些你們誰 沒有得到它完全正確, 1174 00:58:09,190 --> 00:58:11,140 讓我們在這裡提供了一些異議。 1175 00:58:11,140 --> 00:58:13,770 所以維多利亞先說畫一個正方形。 1176 00:58:13,770 --> 00:58:15,830 而現在,我們可以假設 今天的緣故 1177 00:58:15,830 --> 00:58:17,538 大家都知道 如何繪製一個正方形。 1178 00:58:17,538 --> 00:58:20,590 但是,這並不完全清楚,對不對? 1179 00:58:20,590 --> 00:58:23,220 你怎麼還能有 畫出的方形,或在 1180 00:58:23,220 --> 00:58:27,114 可能是一些模棱兩可的 這裡的電腦嗎? 1181 00:58:27,114 --> 00:58:28,280 聽眾:位置和大小。 1182 00:58:28,280 --> 00:58:28,980 DAVID MALAN:位置,對不對? 1183 00:58:28,980 --> 00:58:32,070 在座的各位有一些形狀的紙, 一般矩形,但稍微 1184 00:58:32,070 --> 00:58:32,830 不同的尺寸。 1185 00:58:32,830 --> 00:58:36,250 但你肯定會已制定, 如果你想,一個巨大的廣場,也許 1186 00:58:36,250 --> 00:58:37,220 一個小廣場。 1187 00:58:37,220 --> 00:58:38,417 也許,有人旋轉。 1188 00:58:38,417 --> 00:58:39,500 我不認為我們看到了。 1189 00:58:39,500 --> 00:58:41,790 但是,它可能是更多的鑽石 喜歡但還是儘管如此, 1190 00:58:41,790 --> 00:58:42,900 數學上的正方形。 1191 00:58:42,900 --> 00:58:44,850 所以這是可以說是模棱兩可。 1192 00:58:44,850 --> 00:58:46,709 >> 然後她說,畫一個圓。 1193 00:58:46,709 --> 00:58:49,250 你們有些人根本旁邊繪製 它,這是沒有道理的, 1194 00:58:49,250 --> 00:58:52,450 因為人類傾向於認為或閱讀 從右到左的大多數語言,所以不是 1195 00:58:52,450 --> 00:58:53,017 一個壞的猜測。 1196 00:58:53,017 --> 00:58:55,100 但那個圈子可能 一直在正方形內, 1197 00:58:55,100 --> 00:58:57,600 本來是圍繞著 廣場上,本來是在別處 1198 00:58:57,600 --> 00:58:59,480 在紙張上的,所以可以說是模棱兩可。 1199 00:58:59,480 --> 00:59:03,290 >> 斜率可能已經也許 採取最自由口頭 1200 00:59:03,290 --> 00:59:04,200 有什麼意思。 1201 00:59:04,200 --> 00:59:06,980 和你們中的一些解釋 它作為一個波浪線 1202 00:59:06,980 --> 00:59:08,560 或直線等。 1203 00:59:08,560 --> 00:59:11,719 然後三角形,也可以有 被定向在任何數量的方式。 1204 00:59:11,719 --> 00:59:14,760 因此,在短期,即使有一些 你一眼,你就像,哇,好 1205 00:59:14,760 --> 00:59:17,020 簡單,小孩子可以 得出這樣的,好了沒有 1206 00:59:17,020 --> 00:59:19,640 真的,除非你 超級,超級說服力 1207 00:59:19,640 --> 00:59:22,045 並告訴計算機 究竟該怎麼做。 1208 00:59:22,045 --> 00:59:24,420 因此,如果我們可以,如果你有 另一張紙上,讓我們 1209 00:59:24,420 --> 00:59:26,710 試試這一次。 1210 00:59:26,710 --> 00:59:29,880 我想給維多利亞1 這裡,屏幕上的其他的例子。 1211 00:59:29,880 --> 00:59:34,060 再次,不掉頭 不看你的幻燈片。 1212 00:59:34,060 --> 00:59:37,304 我給她一點時間 想想如何描述這一點。 1213 00:59:37,304 --> 00:59:39,012 不要讓他們看到 恐懼在你的眼前。 1214 00:59:39,012 --> 00:59:40,820 >> [笑聲] 1215 00:59:40,820 --> 00:59:43,710 >> 再次,這一次槓桿 其中一些外賣 1216 00:59:43,710 --> 00:59:48,130 並試圖讓幾乎所有人 至少正確的答案。 1217 00:59:48,130 --> 00:59:52,260 >> 聽眾:OK,取 一張紙,看看 1218 00:59:52,260 --> 00:59:54,500 在一張紙的中間。 1219 00:59:54,500 --> 00:59:59,591 在那片中間 紙,畫一個立方體。 1220 00:59:59,591 --> 01:00:01,244 >> [笑聲] 1221 01:00:01,244 --> 01:00:02,660 DAVID MALAN:有我們學到了什麼? 1222 01:00:02,660 --> 01:00:03,540 我們是如此接近。 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 OK,重複,如果你能為大家。 1225 01:00:09,045 --> 01:00:13,210 >> 聽眾:在的中間 一張紙,畫一個對象, 1226 01:00:13,210 --> 01:00:14,842 它看起來像一個立方體。 1227 01:00:14,842 --> 01:00:17,332 >> DAVID MALAN:OK,這是 你所得到的工作。 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 請允許我以分析 並沒有那麼多的關鍵, 1230 01:00:23,080 --> 01:00:25,720 但要索賠 維多利亞肯定 1231 01:00:25,720 --> 01:00:28,967 似乎非常想在 高層次的抽象,它 1232 01:00:28,967 --> 01:00:29,800 不是沒有道理的。 1233 01:00:29,800 --> 01:00:32,160 因為否則的話,我們都會 是非常不正常的, 1234 01:00:32,160 --> 01:00:35,740 如果我們是有史以來如此精確 與我們所做的一切的世界。 1235 01:00:35,740 --> 01:00:38,890 >> 但話說到了我middle-- 以為我們是在這樣一個良好的跟踪 1236 01:00:38,890 --> 01:00:42,340 那裡,就像去正中央 頁面,然後繪製一個立方體。 1237 01:00:42,340 --> 01:00:45,730 於是,她的思維抽象, 因為她還是觀看 1238 01:00:45,730 --> 01:00:48,490 什麼是確實是屏幕上的立方體。 1239 01:00:48,490 --> 01:00:51,185 但是,有這麼多的機會 口譯那裡。 1240 01:00:51,185 --> 01:00:53,560 而事實上,有這麼多 你可以表達其它方式 1241 01:00:53,560 --> 01:00:55,101 是,我將在稍後提出。 1242 01:00:55,101 --> 01:00:59,770 所以在這裡我們有一個化身 在picture-- whoops--之一 1243 01:00:59,770 --> 01:01:02,830 圖片的化身,所以 小三維它, 1244 01:01:02,830 --> 01:01:04,160 這是很好的。 1245 01:01:04,160 --> 01:01:08,470 >> 這裡是另外一個,在這裡你有 同樣的,雖然它是一種開放的立方體。 1246 01:01:08,470 --> 01:01:12,020 有些人把它一點點 更加扁平化,二維的。 1247 01:01:12,020 --> 01:01:13,910 這很好。 1248 01:01:13,910 --> 01:01:17,380 所以,確實是在 紙張的中心。 1249 01:01:17,380 --> 01:01:22,720 這一次我想你會 喜歡,因為如果我們何去何從, 1250 01:01:22,720 --> 01:01:25,130 這就是她被描述的。 1251 01:01:25,130 --> 01:01:29,570 所以,現在,讓我提出怎麼回事 我們可以描述這種情況。 1252 01:01:29,570 --> 01:01:34,070 >> 早在一天,一個最 比較常見的方式來學習編程 1253 01:01:34,070 --> 01:01:38,900 是寫代碼,寫 指令線, 1254 01:01:38,900 --> 01:01:42,640 該控制的小 龜在屏幕上。 1255 01:01:42,640 --> 01:01:45,660 標誌和本其他的變種 是語言的名稱。 1256 01:01:45,660 --> 01:01:47,550 而龜生活的世界。 1257 01:01:47,550 --> 01:01:49,970 >> 因此,假設該矩形 空間是他的世界。 1258 01:01:49,970 --> 01:01:53,340 你會被assuming--我做起 真的不知道怎麼畫烏龜, 1259 01:01:53,340 --> 01:01:54,740 讓我們像這樣做。 1260 01:01:54,740 --> 01:01:57,340 然後,他有一個殼 然後也許有些腳。 1261 01:01:57,340 --> 01:01:59,840 所以,你可能有這個小 字符在屏幕上。 1262 01:01:59,840 --> 01:02:02,270 >> 並在此對象 程序設計語言 1263 01:02:02,270 --> 01:02:06,070 是迫使龜 往上走,下,左,右 1264 01:02:06,070 --> 01:02:08,420 並把他下筆 或拿起他的筆了, 1265 01:02:08,420 --> 01:02:12,720 因此他居然可以在屏幕上繪製 在這個平面呈長方形的世界。 1266 01:02:12,720 --> 01:02:16,850 那麼,我想你可能會去, 並且,你應該考慮跳水 1267 01:02:16,850 --> 01:02:19,520 到精神上描述時, 說明更一般地, 1268 01:02:19,520 --> 01:02:21,720 我會聲稱,就是把你 筆在middle--下降 1269 01:02:21,720 --> 01:02:23,100 我們會擺脫 烏龜,因為我真的不能 1270 01:02:23,100 --> 01:02:24,680 不斷吸引他很好。 1271 01:02:24,680 --> 01:02:27,170 >> 而現在,還能怎樣 我說畫一個立方體? 1272 01:02:27,170 --> 01:02:32,830 好了,我們可以這樣說平局 一個對角線東北,例如 1273 01:02:32,830 --> 01:02:35,182 或以45度角向上。 1274 01:02:35,182 --> 01:02:36,640 而這可能會在這裡得到了我。 1275 01:02:36,640 --> 01:02:38,380 而我從一個立方體很遠。 1276 01:02:38,380 --> 01:02:42,430 但現在,我可以說的東西 像旋轉90度到左側 1277 01:02:42,430 --> 01:02:47,370 畫線的 等長西北部。 1278 01:02:47,370 --> 01:02:49,470 而且我可以繼續 具有類似的方向。 1279 01:02:49,470 --> 01:02:50,720 而且這不是一件容易的事。 1280 01:02:50,720 --> 01:02:53,345 坦率地說,我們可能會 在這裡已經五分鐘。 1281 01:02:53,345 --> 01:02:59,600 但也許我們會得到以 東西,在一天結束時, 1282 01:02:59,600 --> 01:03:04,280 最終被一個立方體,但我們 跳水是抽象的內 1283 01:03:04,280 --> 01:03:06,370 做到這一點在如此低的 級別你不能真正 1284 01:03:06,370 --> 01:03:09,795 看到你在做什麼,直到整個 事情是居然還有在頁面上。 1285 01:03:09,795 --> 01:03:12,670 所以這是一個總的原則, 再次,programming--這個想法 1286 01:03:12,670 --> 01:03:13,320 抽象。 1287 01:03:13,320 --> 01:03:15,920 它是如此奇妙 強大,因為再次, 1288 01:03:15,920 --> 01:03:19,281 她只是說,畫一個立方體,所有的 我們幾乎將神交非常快。 1289 01:03:19,281 --> 01:03:21,030 我們只是知道, OK,繪製一個立方體。 1290 01:03:21,030 --> 01:03:24,030 我們可能不知道的方向, 所以我們可以是一個小更精確, 1291 01:03:24,030 --> 01:03:26,297 但我們可以大致想像 或者知道一個立方體是什麼。 1292 01:03:26,297 --> 01:03:28,130 這是非常有用的, 因為如果你每次 1293 01:03:28,130 --> 01:03:31,540 坐了下來,作為一個程序員在 鍵盤來寫代碼, 1294 01:03:31,540 --> 01:03:33,912 如果你不得不想在這樣 較低的水平,我們誰也沒 1295 01:03:33,912 --> 01:03:35,120 會永遠做成任何事情。 1296 01:03:35,120 --> 01:03:38,259 當然,沒有人會 享受編寫代碼的過程。 1297 01:03:38,259 --> 01:03:41,550 它會像在0和1的寫作, 坦率地說是不是所有的很久以前 1298 01:03:41,550 --> 01:03:43,680 人類是在0和1的編寫代碼。 1299 01:03:43,680 --> 01:03:46,960 我們很快就想出了 這些較高級別languages​​-- 1300 01:03:46,960 --> 01:03:49,410 C ++和Java等。 1301 01:03:49,410 --> 01:03:52,500 >> 因此,讓我們試試這個一次剛 翻轉表,讓我們所有的人 1302 01:03:52,500 --> 01:03:55,450 不得不思考的機會 在相當的方式相同。 1303 01:03:55,450 --> 01:03:59,230 我們可以得到一個更多志願者這 來時間最長的板和借鑒, 1304 01:03:59,230 --> 01:04:01,480 不背誦? 1305 01:04:01,480 --> 01:04:02,070 是啊,OK。 1306 01:04:02,070 --> 01:04:04,820 本,上來吧。 1307 01:04:04,820 --> 01:04:08,510 而且,本,在這種情況下,一旦你 面對董事會,不看左邊, 1308 01:04:08,510 --> 01:04:09,370 不看的權利。 1309 01:04:09,370 --> 01:04:12,367 只能做你的 同事在這裡告訴你。 1310 01:04:12,367 --> 01:04:14,950 而對於其他人的 房間裡,你現在的程序員。 1311 01:04:14,950 --> 01:04:16,020 他的計算機。 1312 01:04:16,020 --> 01:04:21,395 和畫面我在這裡選擇 提前這是一個在這裡。 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 他們just--他們在想 一個有趣的笑話就是一切。 1315 01:04:27,660 --> 01:04:31,510 >> 所以會有人不喜歡 志願的第一條指令 1316 01:04:31,510 --> 01:04:35,470 或聲明應 命令Ben的筆嗎? 1317 01:04:35,470 --> 01:04:40,850 我們會集體這樣做,也許 從每人一個指令。 1318 01:04:40,850 --> 01:04:41,440 對不起? 1319 01:04:41,440 --> 01:04:42,440 >> 聽眾:畫一個圓。 1320 01:04:42,440 --> 01:04:45,866 DAVID MALAN:畫一個圓 是我聽到的第一件事。 1321 01:04:45,866 --> 01:04:47,100 >> 聽眾:向上頂。 1322 01:04:47,100 --> 01:04:48,140 >> DAVID MALAN:往上頂。 1323 01:04:48,140 --> 01:04:52,504 OK,我們可以讓你刪除,撤消。 1324 01:04:52,504 --> 01:04:53,420 而現在,別人。 1325 01:04:53,420 --> 01:04:55,994 丹,你會舒服 提供的下一個指令? 1326 01:04:55,994 --> 01:05:02,070 >> 聽眾:當然,繪製中心 圓的底部的, 1327 01:05:02,070 --> 01:05:07,121 與small--一點 從狹小的空間, 1328 01:05:07,121 --> 01:05:15,420 畫一條直線下降到三 的方式季度在案板上 1329 01:05:15,420 --> 01:05:17,845 一個微小的角度,以你的左邊。 1330 01:05:17,845 --> 01:05:21,250 1331 01:05:21,250 --> 01:05:22,620 >> DAVID MALAN:好。 1332 01:05:22,620 --> 01:05:24,086 >> 聽眾:很小的角度。 1333 01:05:24,086 --> 01:05:32,807 >> DAVID MALAN:撤銷,Ctrl-Z鍵。好。 1334 01:05:32,807 --> 01:05:34,890 安德魯,你想提供 向上的下一個指令? 1335 01:05:34,890 --> 01:05:35,515 >> 聽眾:當然。 1336 01:05:35,515 --> 01:05:43,250 從該行的底部, 進一步輕微angle-- 1337 01:05:43,250 --> 01:05:49,024 whoops--也許大約三分之一 長度[聽不清] 1338 01:05:49,024 --> 01:05:52,928 很小的角度向下像 第三[聽不清]的長度。 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 所以是的,從這一點來說, 畫一條線第三 1341 01:06:00,578 --> 01:06:04,150 先前的長度的 線進一步向左側。 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> DAVID MALAN:那行嗎? 1344 01:06:10,040 --> 01:06:12,330 直線,這是確定? 1345 01:06:12,330 --> 01:06:14,900 OK,奧利弗,你要 提供了下? 1346 01:06:14,900 --> 01:06:28,564 >> 聽眾:[聽不清]從 圓的底部,[聽不清]。 1347 01:06:28,564 --> 01:06:32,000 1348 01:06:32,000 --> 01:06:45,126 借鑒右側 的[聽不清]厘米。 1349 01:06:45,126 --> 01:06:46,560 >> [笑聲] 1350 01:06:46,560 --> 01:06:49,872 >> DAVID MALAN:我想你會 要轉換這裡是英寸。 1351 01:06:49,872 --> 01:06:50,764 >> 聽眾:停止。 1352 01:06:50,764 --> 01:06:52,186 >> [笑聲] 1353 01:06:52,186 --> 01:06:54,570 >> DAVID MALAN:OK。 1354 01:06:54,570 --> 01:06:56,660 [? ARA,?]你想 提供了下? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> 聽眾:繪製[聽不清] 上部[聽不清]相同。 1357 01:07:15,443 --> 01:07:28,829 [聽不清]畫圓,畫到 [聽不清],並繪製[聽不清]。 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> DAVID MALAN:OK,沒有更多的撤消。 1360 01:07:36,730 --> 01:07:38,390 讓我們做一個或兩個指令。 1361 01:07:38,390 --> 01:07:40,825 克里斯,你想提供一個? 1362 01:07:40,825 --> 01:07:46,182 >> 聽眾:在底部 圓的,[聽不清] 1363 01:07:46,182 --> 01:07:51,528 繪製平等線噴濺 向下向左[聽不清]。 1364 01:07:51,528 --> 01:07:59,304 1365 01:07:59,304 --> 01:08:00,590 >> DAVID MALAN:OK。 1366 01:08:00,590 --> 01:08:01,170 安德魯? 1367 01:08:01,170 --> 01:08:02,472 我們did--卡里姆? 1368 01:08:02,472 --> 01:08:06,891 1369 01:08:06,891 --> 01:08:13,765 >> 聽眾:從右邊線開始, 左行的末尾,底部 1370 01:08:13,765 --> 01:08:21,012 你要去說得對 的長度相同線 1371 01:08:21,012 --> 01:08:27,680 你在,繪圖 正確的[聽不清]。 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [聽不清]度,所以[聽不清] 度在右側。 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> DAVID MALAN:好的。 1376 01:08:43,500 --> 01:08:44,029 讓我們暫停一下。 1377 01:08:44,029 --> 01:08:44,950 不要轉身呢。 1378 01:08:44,950 --> 01:08:46,783 讓我們暫停,讓我們 嘗試另一個嘗試 1379 01:08:46,783 --> 01:08:48,850 我們之前透露給本 他一直畫。 1380 01:08:48,850 --> 01:08:51,189 您可以隨機播放奔 在right--或實際, 1381 01:08:51,189 --> 01:08:54,080 沒有,我們只是給你 另一塊板,甚至更好。 1382 01:08:54,080 --> 01:08:57,640 所以會有人現在想 採取更多的辦法 1383 01:08:57,640 --> 01:09:02,149 維多利亞在早期花了,在那裡 我們在一個更高層次的抽象說話 1384 01:09:02,149 --> 01:09:05,149 在短短一個句子 兩個描述奔 1385 01:09:05,149 --> 01:09:07,229 沒有什麼畫 漸入雜草, 1386 01:09:07,229 --> 01:09:10,670 可以這麼說,在這一個較低的水平? 1387 01:09:10,670 --> 01:09:11,206 維多利亞。 1388 01:09:11,206 --> 01:09:11,706 [笑聲] 1389 01:09:11,706 --> 01:09:14,249 聽眾:畫一個圖 的行走的人。 1390 01:09:14,249 --> 01:09:18,866 而他的腿和胳膊 必須是右側。 1391 01:09:18,866 --> 01:09:20,505 >> DAVID MALAN:OK,這就是你得到的。 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 好吧。 1394 01:09:27,710 --> 01:09:31,609 我們為什麼不透露給奔他做了什麼。 1395 01:09:31,609 --> 01:09:32,890 所以,掌聲雷動。 1396 01:09:32,890 --> 01:09:35,700 這是最難的也許。 1397 01:09:35,700 --> 01:09:37,931 >> 因此,即使我們談論 在相當愚蠢的條款 1398 01:09:37,931 --> 01:09:39,680 關於剛剛繪製 圖片,希望你 1399 01:09:39,680 --> 01:09:44,226 才能真正體會的程度 表現,可能是必要 1400 01:09:44,226 --> 01:09:45,850 為了告訴計算機做什麼。 1401 01:09:45,850 --> 01:09:50,370 而事實上,這一事實本 之所以能夠如此迅速地得出這樣的 1402 01:09:50,370 --> 01:09:54,227 是有點遺囑於使用 語言,也許是更高層次 1403 01:09:54,227 --> 01:09:57,060 英文版本,允許他 只是使用的話,或者聽到的話 1404 01:09:57,060 --> 01:09:59,990 從維多利亞,這讓他 這些abstractions--只畫 1405 01:09:59,990 --> 01:10:03,020 一個人影步行到 right--那種有 1406 01:10:03,020 --> 01:10:07,100 一些語義它不是 幾乎一樣明顯,當你只是 1407 01:10:07,100 --> 01:10:10,310 他說,把你的下筆,畫 到右側,繪製到左邊。 1408 01:10:10,310 --> 01:10:12,420 >> 所以這也很 常見的編程。 1409 01:10:12,420 --> 01:10:15,253 這可以說是像 非常低級語言,編程 1410 01:10:15,253 --> 01:10:16,730 在0和1的,如果你願意。 1411 01:10:16,730 --> 01:10:19,320 並且這將是一個更高的水平 編程語言在Java中, 1412 01:10:19,320 --> 01:10:20,278 或類似的東西。 1413 01:10:20,278 --> 01:10:22,050 的A位 過於簡單化,但是這 1414 01:10:22,050 --> 01:10:24,310 該有點像情緒 感覺,你覺得當 1415 01:10:24,310 --> 01:10:26,630 用一種東西或其他。 1416 01:10:26,630 --> 01:10:32,650 無奈有點這裡所需要 對於這樣的精度,但機會 1417 01:10:32,650 --> 01:10:34,930 是有點寬鬆與 這裡的解釋。 1418 01:10:34,930 --> 01:10:38,060 不過,當然,錯誤 可以作為結果產生。 1419 01:10:38,060 --> 01:10:40,500 >> 如果您想在home--我們 不會做這一塊的分類 - 1420 01:10:40,500 --> 01:10:41,900 但如果你想 這帶來一個歸屬, 1421 01:10:41,900 --> 01:10:43,387 我以為我們會潛入這一點。 1422 01:10:43,387 --> 01:10:45,970 所以,如果你想打這個 遊戲與其他顯著 1423 01:10:45,970 --> 01:10:49,180 或孩子或類似物,則 可能會喜歡這一點。 1424 01:10:49,180 --> 01:10:54,460 >> 因此,讓我們繼續前進,並期待在最後 這裡計算思維的東西。 1425 01:10:54,460 --> 01:10:57,010 這給我們帶來了約翰 奧利弗,不為剪輯 1426 01:10:57,010 --> 01:11:00,070 你可能已經看到昨晚, 但是有點最近的問題。 1427 01:11:00,070 --> 01:11:03,310 幾個月前,大眾汽車 花了很有點高射砲 1428 01:11:03,310 --> 01:11:05,651 是什麼原因,如果你知道嗎? 1429 01:11:05,651 --> 01:11:07,025 他們怎麼惹上麻煩呢? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> 是啊,所以他們emissions-- 試圖擊敗排放 1432 01:11:14,030 --> 01:11:19,100 通過實質上有測試他們的 汽車污染環境少 1433 01:11:19,100 --> 01:11:23,620 當他們的汽車被正在測試 ,污染環境的更 1434 01:11:23,620 --> 01:11:25,547 當汽車沒有被測試。 1435 01:11:25,547 --> 01:11:28,630 什麼是越來越有趣 在世界上,你可能已經推斷出 1436 01:11:28,630 --> 01:11:34,072 從like--討論是什麼 它 - CarPlay,蘋果軟件汽車 1437 01:11:34,072 --> 01:11:35,780 而事實上,許多 我們越來越多地 1438 01:11:35,780 --> 01:11:38,390 有觸摸屏在我們的汽車, 有一個可怕的量 1439 01:11:38,390 --> 01:11:41,250 在人們的軟件 今天的汽車,這 1440 01:11:41,250 --> 01:11:45,650 坦率地打開蠕蟲的時候一個整體 它涉及到安全和人身風險。 1441 01:11:45,650 --> 01:11:48,070 但在今天,讓我們 只關注什麼 1442 01:11:48,070 --> 01:11:52,170 參與編寫軟件 可能已耍花招系統。 1443 01:11:52,170 --> 01:11:54,510 >> 對於的定義 問題,對於那些不熟悉, 1444 01:11:54,510 --> 01:11:55,740 讓我們來看看約翰·奧利弗。 1445 01:11:55,740 --> 01:11:58,115 而對於那些熟悉 這個問題,讓我們來看看它 1446 01:11:58,115 --> 01:12:00,480 在通過約翰·奧利弗一個有趣的鏡頭,以及。 1447 01:12:00,480 --> 01:12:05,810 因此,讓我打這個遊戲,我 認為,三分鐘的介紹。 1448 01:12:05,810 --> 01:12:07,074 該死的。 1449 01:12:07,074 --> 01:12:07,740 [視頻回放] 1450 01:12:07,740 --> 01:12:08,170 -汽車 - 1451 01:12:08,170 --> 01:12:09,919 DAVID MALAN:很明顯, 在YouTube上,it's-- 1452 01:12:09,919 --> 01:12:12,500 - --the最聰明的字符 在速度與激情的電影。 1453 01:12:12,500 --> 01:12:16,080 本週,德國汽車製造商 大眾發現自己 1454 01:12:16,080 --> 01:12:19,430 在醜聞的中間 潛在的犯罪比例。 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen是支撐數十億 罰款,可能的刑事指控 1456 01:12:23,020 --> 01:12:25,530 其高管,如 公司道歉 1457 01:12:25,530 --> 01:12:28,790 索具1100多萬輛汽車,以 幫助其擊敗的排放測試。 1458 01:12:28,790 --> 01:12:32,110 >> - 某些柴油車型設計 與先進的軟件, 1459 01:12:32,110 --> 01:12:35,410 使用的信息,包括位置 方向盤和車輛的 1460 01:12:35,410 --> 01:12:38,820 速度,以確定汽車是 進行排放檢測。 1461 01:12:38,820 --> 01:12:42,620 該種情況下,發動機 將減少有毒物質的排放。 1462 01:12:42,620 --> 01:12:46,040 但是汽車操縱旁路 當它被驅動。 1463 01:12:46,040 --> 01:12:51,370 排放量增加10至40 次超過可接受水平的EPA。 1464 01:12:51,370 --> 01:12:55,920 >> -Wow,10〜40倍 大於EPA允許。 1465 01:12:55,920 --> 01:12:59,570 這是最糟糕的事情 大眾已經做過, 1466 01:12:59,570 --> 01:13:04,200 是你可能會說,如果 你從來沒有聽說過二戰。 1467 01:13:04,200 --> 01:13:09,710 但也許是如何最確實的標誌 比較麻煩大​​眾是, 1468 01:13:09,710 --> 01:13:12,730 是人們在很 上面已經下台。 1469 01:13:12,730 --> 01:13:16,320 該公司首席執行官辭職後,週三 爭著做損害控制, 1470 01:13:16,320 --> 01:13:20,380 說他對不起不休,這 響起了巨大直到它橫空出世 1471 01:13:20,380 --> 01:13:22,920 他只有10%的遺憾 但操縱了他的嘴 1472 01:13:22,920 --> 01:13:25,600 人為誇大他的sorriness。 1473 01:13:25,600 --> 01:13:29,700 而與此同時,大眾汽車在美國 首席有他自己的道歉。 1474 01:13:29,700 --> 01:13:33,580 >> - 讓我們清楚這一點, 我們公司是不誠實的。 1475 01:13:33,580 --> 01:13:37,140 而在我的德語單詞,我們 已經完全搞砸了。 1476 01:13:37,140 --> 01:13:41,360 >> 是啊,但完全擰 最多是不是德國人的作品。 1477 01:13:41,360 --> 01:13:43,750 和德語 有許多美麗的短語 1478 01:13:43,750 --> 01:13:50,070 來形容,就像這樣的情況下, 如[德國],這意味著大致, 1479 01:13:50,070 --> 01:13:52,870 自帶的悲傷 從業務相關的謊言, 1480 01:13:52,870 --> 01:13:59,060 或[德國],換算 作為羞辱那些涉及父親 1481 01:13:59,060 --> 01:14:00,352 汽油雲。 1482 01:14:00,352 --> 01:14:02,060 這是一個美麗的語言。 1483 01:14:02,060 --> 01:14:04,660 它只是帆了舌頭。 1484 01:14:04,660 --> 01:14:07,920 順便說一句,而男人的 道歉也許聽起來誠懇, 1485 01:14:07,920 --> 01:14:12,260 值得注意的是,他在講話 2016年官方發布派對 1486 01:14:12,260 --> 01:14:17,310 大眾帕薩特,這意味著短期內 說對不起後,他這樣表示。 1487 01:14:17,310 --> 01:14:18,850 >> - 謝謝的光臨。 1488 01:14:18,850 --> 01:14:19,630 享受夜晚。 1489 01:14:19,630 --> 01:14:21,300 旁邊是藍尼·克羅維茲。 1490 01:14:21,300 --> 01:14:24,640 >> [音樂] 1491 01:14:24,640 --> 01:14:28,230 >> -OK,OK,你的結局 道歉與旁邊 1492 01:14:28,230 --> 01:14:31,940 藍尼·克羅維茲不 尖叫清醒悔悟。 1493 01:14:31,940 --> 01:14:35,830 它的尖叫聲,我們問苯教 喬維,他說沒有。 1494 01:14:35,830 --> 01:14:38,600 大眾汽車的品牌有 遭到嚴重破壞。 1495 01:14:38,600 --> 01:14:42,466 坦率地說,他們的新廣告 運動是不完全幫助。 1496 01:14:42,466 --> 01:14:47,289 >> - [德國],我們在大眾汽車希望 為欺騙你道歉 1497 01:14:47,289 --> 01:14:47,930 我們的車輛。 1498 01:14:47,930 --> 01:14:48,513 >> [結束播放] 1499 01:14:48,513 --> 01:14:54,090 DAVID MALAN:所以這是一個 環島路of-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 這是一種迂迴的方式 引入一個基本問題 1501 01:14:58,730 --> 01:15:02,810 在軟件,這是你 需要檢測一定的條件。 1502 01:15:02,810 --> 01:15:07,680 這樣一來,在眼前的問題在這裡 是,請問有車有可能, 1503 01:15:07,680 --> 01:15:09,870 作為在軟件中實現 這些程序員, 1504 01:15:09,870 --> 01:15:11,850 檢測到它實際上被測試? 1505 01:15:11,850 --> 01:15:14,150 所以要超清晰, 他們在做什麼 1506 01:15:14,150 --> 01:15:17,940 是,在環境中 程序員想通 1507 01:15:17,940 --> 01:15:20,460 該車當時正在 經過測試,他們不知何故 1508 01:15:20,460 --> 01:15:24,840 汽車排放少排放,少 排放量,所以毒性較低的煙霧 1509 01:15:24,840 --> 01:15:25,470 和這樣的。 1510 01:15:25,470 --> 01:15:27,261 但是,當它通常 駕駛的道路上, 1511 01:15:27,261 --> 01:15:30,350 它只是發出盡可能多 污染,因為它想要的。 1512 01:15:30,350 --> 01:15:33,870 >> 所以,我們怎麼可能寫 偽這個算法? 1513 01:15:33,870 --> 01:15:37,820 我們怎麼能寫的偽代碼 在汽車運行的軟件? 1514 01:15:37,820 --> 01:15:43,390 我的意思是,簡而言之,沸騰 到這樣的事情。 1515 01:15:43,390 --> 01:15:48,000 在被測試,減少排放。 1516 01:15:48,000 --> 01:15:50,750 其他排放更多。 1517 01:15:50,750 --> 01:15:52,630 但是,這是一個小 過高的水平,對不對? 1518 01:15:52,630 --> 01:15:58,580 >> 讓我們嘗試潛​​水至於這是什麼 被測試手段抽象。 1519 01:15:58,580 --> 01:16:06,340 換句話說,即使你什麼都不知道 問題關於汽車,什麼樣的 1520 01:16:06,340 --> 01:16:13,440 也許你為了確定是否問 你正在測試中,如果你的車? 1521 01:16:13,440 --> 01:16:19,638 什麼樣的特點可能是 目前如果汽車正在測試? 1522 01:16:19,638 --> 01:16:21,026 >> 聽眾:檢測設備。 1523 01:16:21,026 --> 01:16:22,420 >> DAVID MALAN:檢測設備。 1524 01:16:22,420 --> 01:16:26,060 因此,如果檢測設備 在附近,然後減少排放。 1525 01:16:26,060 --> 01:16:28,669 所以,我可以想像實施 與某種相機 1526 01:16:28,669 --> 01:16:29,960 或者檢測什麼是你的周圍。 1527 01:16:29,960 --> 01:16:32,870 讓我,讓我們 只是感覺太複雜 1528 01:16:32,870 --> 01:16:37,914 實際上還有其他 硬件只是用於這一目的。 1529 01:16:37,914 --> 01:16:44,830 >> 聽眾:如果你在 公園,如果你的引擎蓋打開。 1530 01:16:44,830 --> 01:16:47,320 >> DAVID MALAN:在公園或 引擎蓋打開,所以這是很好的。 1531 01:16:47,320 --> 01:16:47,420 >> 聽眾:與汽車的運行。 1532 01:16:47,420 --> 01:16:50,480 >> DAVID MALAN:所以這是一個有點 更concrete--和汽車的運行。 1533 01:16:50,480 --> 01:16:55,690 因此,這將是一個會合 幾個不同的情況下,如果你願意。 1534 01:16:55,690 --> 01:16:59,227 因此,如果汽車在公園裡,甚至 雖然這是一個非常機械的東西 1535 01:16:59,227 --> 01:17:01,060 通常情況下,我可以 想像編寫軟件, 1536 01:17:01,060 --> 01:17:03,476 特別是因為有 常光有這些天, 1537 01:17:03,476 --> 01:17:07,400 我可以想像那裡是 軟件可以查詢器 1538 01:17:07,400 --> 01:17:10,634 或什麼不是,你在公園裡,有 你的驅動器,你在相反。 1539 01:17:10,634 --> 01:17:12,550 我可以回去了 回答是肯定的任 1540 01:17:12,550 --> 01:17:14,400 或無來者的題型。 1541 01:17:14,400 --> 01:17:17,630 >> 所以,我也大概可以回答 一個問題一樣,是引擎蓋打開。 1542 01:17:17,630 --> 01:17:21,860 也許,有一些類型的傳感器 要么給我回1或0, 1543 01:17:21,860 --> 01:17:23,720 真的還是假的,發動機罩打開。 1544 01:17:23,720 --> 01:17:28,180 然後車跑,我可以檢測 通過什麼樣的機制,不知何故? 1545 01:17:28,180 --> 01:17:30,430 一樣,汽車運行過程中,我 可以檢測到它的上, 1546 01:17:30,430 --> 01:17:32,127 我能以某種方式檢測 該汽車在行駛? 1547 01:17:32,127 --> 01:17:32,881 >> 聽眾:RPM包。 1548 01:17:32,881 --> 01:17:35,190 >> DAVID MALAN:是啊,所以有 總是那針 1549 01:17:35,190 --> 01:17:38,034 告訴你每多少轉 分鐘的車輪正在經歷。 1550 01:17:38,034 --> 01:17:39,200 因此,我可以看看那個。 1551 01:17:39,200 --> 01:17:43,090 如果它不是0,這可能 是指汽車在行駛。 1552 01:17:43,090 --> 01:17:45,400 但是,我們必須是一個 稍微細心那裡, 1553 01:17:45,400 --> 01:17:49,780 因為 - 讓我們簡化this-- 如果我們只是說,如果車跑, 1554 01:17:49,780 --> 01:17:53,070 我們不希望只是減少排放, 我們想,如果汽車運行 1555 01:17:53,070 --> 01:17:54,310 和它的被測試。 1556 01:17:54,310 --> 01:17:56,320 >> 所以有一些其他 成分,鄉親 1557 01:17:56,320 --> 01:18:00,550 已經假設該軟件是幹什麼的, 由於缺少實際的源代碼, 1558 01:18:00,550 --> 01:18:05,130 您可以從只有幾分推斷 汽車的物理效應,以什麼 1559 01:18:05,130 --> 01:18:08,280 可能是下面怎麼回事 罩中的軟件。 1560 01:18:08,280 --> 01:18:17,090 所以,如果車跑,也許, 比如說,後輪不動, 1561 01:18:17,090 --> 01:18:19,420 這可能預示 的一種考驗? 1562 01:18:19,420 --> 01:18:22,830 我究竟在暗示這裡? 1563 01:18:22,830 --> 01:18:24,830 是的,也許,這是在一個 這些輥的事情, 1564 01:18:24,830 --> 01:18:28,340 其中類似的車輪轉向 在前面或在後面, 1565 01:18:28,340 --> 01:18:32,570 取決於它是否是前輪或 後輪驅動,所以一半的輪子 1566 01:18:32,570 --> 01:18:34,420 是移動的,但該 另外兩個都沒有,這 1567 01:18:34,420 --> 01:18:36,320 是在現實世界中一個奇怪的局面。 1568 01:18:36,320 --> 01:18:38,110 如果你開車在 道路,這是不應該的。 1569 01:18:38,110 --> 01:18:40,568 但如果你是在一個倉​​庫 對某種輥系統, 1570 01:18:40,568 --> 01:18:41,630 確實可能發生。 1571 01:18:41,630 --> 01:18:46,980 >> 我認為,人們還提出,也許, 如果汽車是運行和轉向 1572 01:18:46,980 --> 01:18:51,300 沒有秒針輪動,即 太可能是一個信號, 1573 01:18:51,300 --> 01:18:54,090 因為這是合理的 就像道路上的通俗易懂。 1574 01:18:54,090 --> 01:18:57,960 但即便如此,人類可能是 移動一點點或肯定 1575 01:18:57,960 --> 01:18:59,100 超過幾秒鐘。 1576 01:18:59,100 --> 01:19:01,030 或一過程 分鐘,賠率是它不 1577 01:19:01,030 --> 01:19:03,510 要在對被固定 完全相同的位置。 1578 01:19:03,510 --> 01:19:05,440 >> 因此,換句話說,我們 可以採取減法, 1579 01:19:05,440 --> 01:19:08,200 你正在測試, 打破這個功能 1580 01:19:08,200 --> 01:19:10,420 到這些部件的成分。 1581 01:19:10,420 --> 01:19:13,440 這就是真正的大眾汽車什麼的 工程師在某種程度上做到了。 1582 01:19:13,440 --> 01:19:17,070 他們編寫軟件自覺地 檢測汽車是否正在測試中, 1583 01:19:17,070 --> 01:19:20,440 因此,減少排放,否則 發射在通常的方式。 1584 01:19:20,440 --> 01:19:22,690 >> 這裡的問題也是如此, 是,軟件不是 1585 01:19:22,690 --> 01:19:26,080 是你真的可以看到,除非 有所謂的源代碼。 1586 01:19:26,080 --> 01:19:29,060 因此,有兩種不同類型的 代碼 - 至少兩種不同類型的 1587 01:19:29,060 --> 01:19:30,130 在世界上的代碼。 1588 01:19:30,130 --> 01:19:33,150 有一種叫做源 碼,這是不不像 1589 01:19:33,150 --> 01:19:37,240 我們一直在寫,源代碼。 1590 01:19:37,240 --> 01:19:40,099 >> 這是源代碼寫在 一個叫偽語言, 1591 01:19:40,099 --> 01:19:41,640 這只是一些英語等。 1592 01:19:41,640 --> 01:19:43,140 還有就是它沒有正式的定義。 1593 01:19:43,140 --> 01:19:46,770 但是,C,以及Java,C ++,這些 都是正規的語言說, 1594 01:19:46,770 --> 01:19:50,610 當你在寫他們,你有什麼 是包含源代碼的文本文件。 1595 01:19:50,610 --> 01:19:54,850 >> 但也有一些在 世界稱為機器代碼。 1596 01:19:54,850 --> 01:20:00,579 和機器代碼,不幸的是, 僅有0和1的。 1597 01:20:00,579 --> 01:20:02,870 所以機代碼是什麼 機器理解,當然。 1598 01:20:02,870 --> 01:20:04,470 源代碼是什麼人懂。 1599 01:20:04,470 --> 01:20:08,390 >> 一般,但不 總是有一個節目 1600 01:20:08,390 --> 01:20:14,090 一個程序員使用了採用源 代碼並把它變成機器代碼。 1601 01:20:14,090 --> 01:20:17,400 而這程序 一般被稱為編譯器。 1602 01:20:17,400 --> 01:20:19,820 所以,你的輸入源代碼, 你的輸出是機器代碼, 1603 01:20:19,820 --> 01:20:22,890 而編譯器是一塊 軟件,做這一進程。 1604 01:20:22,890 --> 01:20:26,260 所以實際上很好地映射到 我們的投入,算法的輸出。 1605 01:20:26,260 --> 01:20:30,400 >> 但是,這是一個非常具體的化身 的這一點,這是說, 1606 01:20:30,400 --> 01:20:34,200 即使你擁有大眾汽車的一個 汽車就是犯了這一點, 1607 01:20:34,200 --> 01:20:38,390 它不喜歡你可以打開 罩或打開的用戶手冊或者查看 1608 01:20:38,390 --> 01:20:42,690 在源代碼,因為由時間 到達您的車停在你的車道, 1609 01:20:42,690 --> 01:20:45,580 它已經被 轉換成0和1的。 1610 01:20:45,580 --> 01:20:51,310 而且它是很辛苦的,不是不可能的, 但很難收集很多的事情 1611 01:20:51,310 --> 01:20:53,710 從剛剛在看 底層0和1的。 1612 01:20:53,710 --> 01:20:57,150 所以,你自己看著辦吧,最終,如果 您了解機器operates-- 1613 01:20:57,150 --> 01:20:59,870 英特爾inside--如果你了解 英特爾架構, 1614 01:20:59,870 --> 01:21:01,440 但它是非常耗時。 1615 01:21:01,440 --> 01:21:05,010 而即使在那裡,你可能 無法看到的一切 1616 01:21:05,010 --> 01:21:08,220 該代碼可以做。 1617 01:21:08,220 --> 01:21:12,521 >> 這個或任何疑問 樣的過程更普遍? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 而實際上,我們可以配合這個討論 蘋果昨天的討論。 1620 01:21:18,300 --> 01:21:22,500 這也就是為什麼聯邦調查局不能只 去看看在犯罪嫌疑人的手機 1621 01:21:22,500 --> 01:21:26,820 找到的代碼行,為 例如,使密碼 1622 01:21:26,820 --> 01:21:28,940 或啟用,80毫秒的延遲。 1623 01:21:28,940 --> 01:21:31,630 因為到那時它的 在老鄉的iPhone, 1624 01:21:31,630 --> 01:21:34,975 它已經被 轉換為0和1的。 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> 好吧,讓我們暫停這裡為我們 看看計算思維。 1627 01:21:40,820 --> 01:21:42,320 我們為什麼不採取有15分鐘的休息時間。 1628 01:21:42,320 --> 01:21:44,130 而當我們回來,我們將 看看編程 1629 01:21:44,130 --> 01:21:46,550 本身並開始繪製一些 這些高層次的概念 1630 01:21:46,550 --> 01:21:49,780 一個實際的,如果俏皮, 編程語言。 1631 01:21:49,780 --> 01:21:51,089