Category Archive for '專欄'

算術平均數(上)

統計學工具,可以協助我們把多餘的資訊刪減,令人們可以更清楚方便地看到他們需要的資訊。以大家一定懂得的「算術平均數」(Arithmetic Mean)為例,如果你編寫了一個改圖程式,為了測試它的速度。你在不同的環境,不同的時間,重複運行某功能1000次,然後把所需時間記下來。這個時候,如果有人問及你一些有關你的程式的運行速度的資料,你可以把你的測試告訴他。在報告測試結果的時候,你可以選擇說︰ 1. 第1次︰38秒,第2次︰36秒,第3次︰37秒,第4次︰38秒….(把所有記下來的時間讀出來)……….. 或 2. 平均運行時間是37秒。 這兩個答案沒有誰對誰錯,要回答哪一個就取決於對方想要什麼?想要仔細的資訊?還是想要一個簡潔,但又具代表性的數字?但可以肯定的是,2.的資訊比1. 的要少。因為如果我得到1. 中的資訊,我可以把2.所提及的平均數計出來,但我只知道2.的話,卻不可以把1.的資料計出來。換句話說,為了換取簡潔,我們使用「平均數」這個工具,把一些我們認為是多餘的資訊刪去了。 讀者可能會說,這只是小朋友都懂的算術題,有必要說得這樣複雜嗎?如果這些說話只是在一般朋友間的對話中,可能問題不大,反正大家在很多時候都只是想看個大概,細節上有什麼誤解也無傷大雅。但當這些平均數被廣泛用在廣告、公共資訊(如天氣預告)和資訊紀綠(如成績單)中,我們就得費點工夫去了解,這些平均數是在說些什麼了,或者他們刪除了什麼了。

Read Full Post »

Posted By Mr. Thursday 各位經過理髮店的時候,或許都會注意到理髮店有一個捲軸,捲軸不停旋轉,但是看起來會像是有一圈圈的條紋往上移動。今天要和各位介紹的是另外一個類似的錯覺,叫做「孔徑問題」 (Aperture Problem)。 圖1 理髮店捲軸錯覺 何謂孔徑問題呢?我們可以先看看下面這個動畫: 圖2 孔徑問題 (Aperture Problem) 我們可以看到,中間有一個圓圈,我們透過這個圓圈,會看到有斜線,沿者「右下」的方向移動。然而如果要造成這種視覺效果,卻有三種可能。第一種可能是一個「橫向」的紙條,往「正右方」拉動,但是紙條上面有「斜線條紋」,因此透過孔徑來看的時候,會有錯覺。第二種可能是一個「直向」的紙條,往「正下方」移動,但是因為紙條上面有「斜線條紋」,因此透過孔徑來看的時候,還是感覺往右下方移動。第三種可能是一張紙條,上面有著「直線條紋」,但是往「右下方」移動,因此透過孔徑觀看的時候,會和前面兩個看到的移動方向一樣。 因此雖然三張紙條「移動方向」不同,甚至紙條上面「條紋的方向」也不盡相同,但是透過孔徑來觀察的時候,卻都會有條紋移動方向相同的錯覺。這就是「區域 (local)」 和「 全域 (global)」 視覺處理的差別。我們的視覺系統區域上 (locally) 可以有孔徑問題的錯覺,但是當我們觀察的範圍是全域 (globally)的時候,卻又分析的出來三張紙條不同的移動方向。我們的視覺系統怎樣子達成這樣子的功能呢?

Read Full Post »

改版,是一件很嚴肅的挑戰。如果沒有必要的話,就不應該大幅更動版面,而是小幅度的改變。因此,在設計出代的產品的時候,就應該要格外用心。使用者需要被尊重,而對使用者最親切的介面就是,”那些按鈕就應該在它們所該在的地方才是”。

Read Full Post »

專利究竟造福了誰?

專利主要是對發明、新型、新式樣此三者經申請並通過審查後所授予的一種權利;發明是指提供新的做事方式或對某一問題提出新的技術解決方案的產品或方法;新型是指對舊事物的形狀、構造或裝置提出新的技術性創作;新式樣則是指在事物的外觀尚追求美感的新創作。 專利對專利權人的發明予以保護在20年內為有效時限;對新型予以保護有效時限為10年;對新式樣予以保護有效時限為12年。

Read Full Post »

我想就在於技術專家一貫的思維: 好的產品自然會有口碑;好的文章自然會遠播。這樣子的想法是對的,也是錯的。對的是,沒錯,在長久的時間的証明之下,好的東西最後還是會浮出,但是有多長,要多長? 在沒有行銷的催化劑之下,這個長度是未知數。錯誤的想法是低估了傳播的阻力,雖然 Web 上面傳播的阻力已經比實體來的小了,但是並不是大家所想像的那麼小。如果仔細思考一下,數千萬個 Page 在爭著 Google 搜尋關鍵字的前 10 大排名,就會知道這個阻力有多大了。

Read Full Post »

Posted By Mr. Thursday 不知道各位是否有接聽電話插撥 (call waiting) 的經驗? 我們會先把第一個接聽的人先暫時停著,然後接聽新打來的電話。不知道目前插撥最多能接聽多少通電話?假設依照這個方法一直接聽新的插撥電話,就會一直把上一通電話暫時儲存,等新接通的電話結束後,再回復上一通、上上一通、一直到第一通接聽的電話。 堆疊 (Stack) 就是類似的資料結構。「堆疊」有兩個方法 (method) 可以呼叫:推進 (push) 和 彈出 (pop)。透過這兩個方法的使用,我們可以達到讓資料「先進後出」的效果 (LIFO: Last In First Out)。甚麼是先進後出呢?讓我們再舉一個例子:搭電梯。當我們搭電梯的時候,通常最先進電梯的會擠在後面,後進電梯的比較靠近門口。如果都是同一層離開電梯,剛才比較慢近來電梯的人,反而是比較早離開電梯的人,這就是「先進後出」(LIFO) 的效果了。 再回到剛才接聽插撥電話的例子,正好就是先進後出的例子!最後插撥的先結束對話,最早打來的最慢結束對話。接下來讓我們看看,堆疊實際運作的情形,會向下面這一張動畫所顯示的:  

Read Full Post »

Posted By Mr. Thursday 在〈二元樹在排序的應用〉裡面,我們提到了演算法就是完成一件事情的步驟,資料結構則是和演算法搭配,讓步驟有運作的東西,像是刮鬍刀的步驟,會運作在刮鬍刀或是插頭上面。「樹」(tree) 是一種資料結構,有樹根樹枝,看起來像是倒立的一棵樹。二元數則是每個節點只有兩個分支的樹。此外,我們可以用二元樹這個資料結構,完成「排序」(sorting) 的演算法。下面是一段各種排序演算法的影片:   除了排序以外,今天要和各位介紹,當我們把資料用一棵樹排序之後,要如何進行搜尋?排序或是沒有排序,對搜尋的效率有甚麼樣子的影響?我們先看看下面這兩張圖,左邊是排序過程,右邊是搜尋過程的動畫:

Read Full Post »