www1036 的部落格

船老大食記

 [補5/21]

 今天是這學期的班聚

表決的結果是去吃船老大

梅老大也說大學四年至少要去吃過一次

所以當天的程式語言課提早了半小時下課

許老師也說那邊的價位不高@@"

坐了299公車,感覺繞了一大圈的路= =

一看到他的建築外觀,頓時讓我失望了一下,感覺真破舊,囧..

進去給人又是不一樣的感覺

空間寬敞,好吧~!,外觀不是重點,重要的是口味...

結果要衝第一盤食,準備下手壽司

啊!!有強哥~~oh~~我把我夾好的壽司又夾了回去...

海鮮類,看起來不是說很新鮮...

青菜只有一樣..肉類好硬,牙齒咬不斷..囧..

湯,oh,把料拿下去燙一燙就好了= =

所以整體讓我感覺蠻失望的

不過,他的玉米濃湯加麵包,我不知道那叫什麼鬼

還有他的泡芙,還不難吃,科科科...

但我想以後若不是有其他機會,我不會再來這家了

我寧可去上闔屋= =,雖然他貴,但cp值比船老大高

嗯,食記結束,最後等了快半小時的88公車回板橋

結果我爸說,船老大啊@@?他10年前去吃,辦桌的,不難吃

結果過了10年後...:(

ER diagram

ER Mode(全寫Entity-Relationship Model,實體關係模型)

他是一套資料庫的工具,主要用來解釋資料庫中抽象化的結構。

而在我們期中考出了一題ER diagram(Entity-Relationship Diagram)

他就是ER Mode所表達的圖形,主要用來表示資料庫中的設計

可助於設計過程中的構思,增加設計上的效率

[筆記] ch5 Algorithm

5-1 The Concept of an  Algorithm

An algorithm is an ordered set of
unambiguous, executable steps that defines a
terminating process

5-2 Algorithm Representation

* Requires well-defined primitives

* A collection of primitives constitutes a
   programming language

(1)Primitives(原式)

   primitives = Syntax(語法) + Semantics(語意)

   要了解一個演算法之前,最基本的就是要先去了解他基本的原式

   例如課本圖5.3,就是一個摺紙的基本原式

(2)Psedocode(虛擬碼)

   a  Psedocode is a notational system in which ideas can be expressed informally during

   the algorithm debelopment process

   ex: procedure Greetings

        Count Psedocode ← 3;

        while(Count > 0) do

       (print the message "Hello" and

       Count ← Count - 1)

5-3 Algoeithm Discovey

* Polya’s Problem Solving Steps

 1. Understand the problem.
 2. Devise a plan for solving the problem.
 3. Carry out the plan.
 4. Evaluate the solution for accuracy and its
potential as a tool for solving other problems

在解決問題是不一定要照著上面的步驟走,因為不是每一個問題都能先去完全了解,在未找到問題解決方案之前,是無法真正了解問題

所以,可以先做下一步,進而慢慢去了解問題的所在

Getting a Foot in the Door

(1)backwards(反推法)

(2)Stepwise refinement(逐步細分法):Divide the problem into
smaller problems (又稱top-down methodology由上而下方法論)

(3)bottom up methodology(由下而上方法論)

5-4 Iterative Structures(反覆結構)

* The Sequential Search Algorithm

ex:Select the first entry in the list as TestEntry

    while(TargetValue > TestEntry and

       do(Select the next entry in the list as TestEntry)

* Loop Control

(1)Initalize(初設)

(2)Test(測試)

(3)Modify(修改)

* The Insertion Sort ALgorithm

5-5 Recursivw Structures(遞迴結構)

* The Binary Search Algorithm

  在一個清單之中,分段取中間的資料,再與目標值比對,以決定要取左邊還右邊的資料,以此類推

* Recursive Control

  測試終止條件(base case , degenerative case)

  假如終止條件未成立,遞迴程式將再會產生另一個呼叫本身的遞迴程式,

  而此問題將會比目前啟動的更趨近於甚至達到終止條件

  p.s 任何的遞迴程式都能以迴圈形式來表達,

       缺點:遞迴程式若測試數據過大時,恐會造成記憶體不足,執行速度過慢甚至法法顯示結果

5-6 Efficiency and Correctness

* Measured as number of instructions executed

*Big theta notation: Used to represent efficiency classes 

  – Example: Insertion sort is in Θ(n2)

* Best, worst, and average case analysis

測試的條件(硬體,軟體板本,環境所執行的程序...等)要一致,所出來的結果才有公正性

 – Example: Binary search is in Θ(lg n)

通常最有效率的是  Θ(n) 呈水平線,不會隨著資料量而改變他的處理速度

 

程設比賽

星期三,跟歐爺,吳俊毅和蔡柏鑫去參加了程設比賽

好吧!我承認我是衝著免費午餐去的,科科科

去的時後看到的午餐是學校著名的大菠羅,而且是有包餡的耶~~

再加上一瓶飲料,少說都要40塊了,真是夠本的啦~~

結果在負責簽到的學姐,看到我名字,就說是我的學姐

我一開始以為是直屬(我大三以上的直屬還沒看過)

結果他說是跟我同間高中,我納悶了也一下

後來想一想,會不會他有也有可能看錯,因為清水臺中也有一間XDD

好吧,不管有沒有看錯(我在高中時沒印像就是了)

進去開始比賽後,我旁邊的學長看了一下,狂猛似的敲打他的鍵盤...

過了15分..去demo...再過15分..demo..15分..demo...

我也算不清他去了幾次,我只知道剛開始沒幾分,餘光就看到他的螢幕,

出現了一堆code,真是佩服他的思緒,一下子就能寫出這麼多

到了三點多一點點,我去demo了一題,這題我卡了很多問題

型態上的問題,也許是不常使用到long這麼大的型態,

似乎都忘了他的存在,另一個問題是,沒去考慮到數字的位數

結果輸入兩位只抓到一位,又再改了一下,又花了快20分鐘

demo回來後,聽到旁邊學長喃喃自語,說道,阿,時間不夠了,算了..

等等像這類的話(應該是吧)

後來重看了一下題目,原來也不一些不難的題目(因為我先跳過英文以及長敘述的題目)

看來拿到卷子還是不管他中英文長短如何,先看過大概一下還是對自己較有利的

在這次比賽中,也學到了不少...也能夠去檢驗出自己實作的能力,當然是有待加強啦~~~

好吧,回到家,我肚子又餓了,果然午餐只吃大菠蘿,只能先止的飢而已..

科科科...

下次若有機會,也許還會再去看看吧:)

荷蘭朋友?

就在剛剛..

msn彈出一的加入不知名的好友訊息

我就先加了,並詢問他是那位?

他竟然打出一堆英文,我也發現他看不懂中文

好吧,我推測他是個外國人

他問我是那一國人,荷蘭?日本?

我說是Taiwan,囧,他不知道在那

後他他可能去查了一下,並問China?

我就回Right.他似乎了解了..

因為他說了一個Wang....YA..臺灣之光ㄟ,臺灣知名度就是靠你打出去的..

後來我問他為什麼他加我,他說他沒有..囧..

他也問我是男是女,我說男....他說他不相信

我問Why not?

他說.....

因為我不是Gay...

   因為我不是Gay...

       因為我不是Gay...

什麼鬼呀...

順便一提,後來我還是覺得怪怪的,就把它加黑名單了

再提,他英文程度似乎比我差,worse看不懂...囧...

期中考

喔喔喔喔喔~!

期中考考完了...

第一天 微積分,先前老師有公布至少70%的題目

結果考出來的都是不會寫的題目..不然就是同樣的題目換到別的題型

感覺真不會舉一反三,所以微積分爆了

第二天 國文,離散,國文考履歷自傳,要寫出一些注意事項

感覺就是很嘴砲的題目,又考易經八卦,有記但是部份忘了,所以國文應該也爆了

離散,跟小考的題型大同小異,還有考課本的,但是有一些沒看熟,所以也爆了

第三天 電子學,Java筆試,電子學考的竟然比小考簡單,

但是目前知道有一題少算到一個電阻,所以也爆了..

Java筆試,堪稱最不注重的考科,應該考的很困難,甚至看不懂,

在那堂,有人寫不到15分鐘就交卷了,不過我還是堅持到最後,倒數第一還第二交吧

所以也是爆..

第四天 計概 比上學期難了許多,最後一題迴圈,我寫出他的流程,

但我竟然眼殘寫出了,

流程中止...

   流程中止...

       流程中止...

加上其他有些很猶豫不決的題目,寫對有分,寫錯倒扣,不過還是賭了一下

所以計概也爆了...

下星期一 C上機,星期四歷史,下下星期Java上機,希望不要再玩爆爆樂了...

IPv6的簡介

IP的全寫為Internet Protocol,中文為網際協議或網際網路協議,主要目的是為提供通訊子網間的連接,形成可傳輸資料的網際網路。

 

        為了在這通訊網間能夠互相的聯繫,每個與網路間的窗口都必須要擁有自己的地址,才能與外界溝通,這個地址被稱之為定址(Addressing),他能夠使不同類型、傳輸的介質、電腦(設備)互相有效的交換資料,所以就定出了一套通用於辨別網際網路上的每一個設備。

 

        現行普遍所使用的是IPv4的定址,他是利用32位元的數值所組成,為表達上的方便,分作四段,每段8位元,每一段的數值範為0~255間,那麼,每一個設備在連接網路時,都需要一個唯一定址才能夠連接,因此應該要有一個標準單位來進行配發的措施,而標準單位如下:全世界的IPNIC負責、亞太為NIC、臺灣為APNIC,而目前網路人口進展迅速,IPv4所能提供的只有4,294,967,296(232方次)已趨近於飽和,各項資料也顯示全球IPv4位址可能在20052008年間全部發完,雖然目前在網際網路協定(IPv4)下研發出網路位址轉換(NAT)的機制來解決網路位址不足的情形,但並不能徹底解決位址不足的狀況,甚至e化電器(利用網路來監控家庭電器的開關等)都需要一個對應的IP,在這種問題浮出臺電後,所以就有IPv6的產生。

       

        IPv6是網際網路協議的第六版;最初它在IETFInternet Engineering Task Force)的 IPng選取過程中勝出時稱為網際網路下一代網際協議(IPng),IPv6是被正式廣泛使用的第二版網際網路協議。以下是其表示法:

       

1.IPv6地址為128位元長但通常寫作8組每組四個十六進位數的形式。

          2001:0db8:85a3:08d3:1319:8a2e:0370:7344

        2.若其中一組全為零

          2001:0db8:85a3:0000:1319:8a2e:0370:7344

          可省略如下

          2001:0db8:85a3::1319:8a2e:0370:7344

        3.若因省略出現兩個冒號以上,可壓縮成為一個,但此種壓縮只能出現一次

           2001:0DB8:0000:0000:0000:0000:1428:57ab

           2001:0DB8:0000:0000:0000::1428:57ab

           2001:0DB8:0:0:0:0:1428:57ab

           2001:0DB8:0::0:1428:57ab

           2001:0DB8::1428:57ab

以上均為一地址。

4.以下為非法表示

  2001::25de::cade

  因為如此表示會搞不清處零壓縮有幾組分布於那一處

5.前導零可省略

  2001:0DB8:02de::0e13

  省略為下

  2001:DB8:2de::e13

 

IPv6表示當中實為IPv4IP,後32位可用10進位來表示,如下

::ffff:c0a8:5909 相當於 ffff:192.168.89.9

不相當於::192.168.89.9 ::c0a8:5909

 

所以「ffff:1.2.3.4格式叫做IPv4〝映射地址〞,不建議使用。」

 

總覺得IPv4IPv6中表示,要轉回IPv4是困難的。

 

IPv4轉成IPv6,似乎就沒那麼困難了,舉例來說,如果IPv4的一個地址為135.75.43.52(十六進位為0x874B2B34),可以被轉成0000:0000:0000:0000:0000:0000:874B:2B34或者省略零壓縮為::874B:2B34。同時,還可以使用混合符號(IPv4-compatible address),則地址可以為::135.75.43.52

 

所以「::1.2.3.4格式叫做IPv4一致地址。」

 

     除此之外,IPv6改良IPv4封包表頭格式,使大小固定並加強表頭選項的機制功能,使路由器省去了封包檢查和封包切割的動作。使服務品質(Quality of Service, 簡稱QoS) 機制更具彈性IPv6封包表頭增加了訊務等級(Traffic class) 與流量標示 (Flow Label)等欄位使IP QoS的機制更具彈性。雖然現今ISPIPv6服務仍尚未普及,但面臨轉換過渡期,最好的應付對策還是在設備上更新成可同時支援IPv4IPv6的協定,以應付未來的發展。

參考資料:http://0rz.tw/833WZ 

              http://0rz.tw/bb3WD

              http://0rz.tw/b23Rf   

演算法的介紹

演算法是什麼?「演算法」中文一詞,最早出現於《周髀算經》中,《周髀算經》是一本早期的中國數學書籍,而英文名稱 Algorithm 來自於9世紀波斯數學家比阿勒·霍瓦里松的名字al-Khwarizmi,因為比阿勒·霍瓦里松在數學上提出了演算法這個概念。「演算法」原為"algorism",意思是阿拉伯數字的運演算法則,在18世紀演變為"algorithm"

       

演算法是指完成一個任務所需要的〝具體步驟〞和〝方法〞。也就是說給定初始狀態或輸入數據,經過電腦程序的有限次運算,能夠得出所要求或期望的終止狀態或輸出數據。演算法常常含有重複的步驟和一些比較或邏輯判斷。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間複雜度與時間複雜度來衡量。

       

看到這邊,我們一般人都會覺得,演算法是跟電腦方面是必定是有關連的,然而並非是如此,演算法也可應用到日常生活中的實例上,他遵守著以下作為解決技巧的基本原則:

        Step1:了解問題。

        Step2:擬出一個解決問題的方案。

        Step3:實踐這個計畫。

        Step4:評估該解法之精確,以及將其作為解決其他問題之工具的可能。

然而去遵循這些步驟並非是一定要依序完成,對於某些問題,要徹底了解也許是困難的,所以可先去藉由執行第二、三、四步驟,來去更深入了解問題。

 

        而其中有有方法能夠去幫助我們去想出一個演算法,像反推法(backward)、逐步細分法(stepwise refinement):反推法意即利用輸出去推論輸入,這跟我這學期當中修的一門通識,課程主題相似,內容一開始就闡述著說『在現今當中,任何的理論都是代表著一個〝果〞,〝果〞可以推論出下一個〝果〞,而這個〝果〞可以往上去推出他的〝因〞,可以一層一層往上推到一個極限,而這個極限就是所謂不變的公理。』而當中一層層往上去剝絲抽繭過程,就是使用到了反推法;逐步細分法又可分為由上而下論(to-down methodology)及由下而上論(bottom-up methodology),這個我們也許可以利用到最近在學的物件導向來去做說明:當我們要寫出一個物件導向的程式當中,必須將其拆成許多類別(class)分別來設計他的功能,這符合了由上而下論(一般到特定);那麼Java內的本身的類別庫中的類別提供我們在寫作程式上直接套用,能夠去節省時間,利用現有的東西來去解決目前的問題,不須再寫去相關的功能,這就屬於由下而上論(特定到一般)

       

在程式語言當中,比較有名的演算法如依序搜尋法(sequential search)、二元搜尋(binary search)、選擇排序法(selection sort)、氣泡排序(bubble sort)、插入排序(insertion sort)以及遞迴(recursive),各個演算法都有其的目標與適用性,而他們往往會被檢驗效率為何?若效率太差,可能代表著這個演算法是不夠好的,但也未必如此,像插入排序,他在資料量少時能後花費較少,但資料一多,反之;二元搜尋則是資料量少時,花費較少時間,但資料一多,他一樣會多花上點時間,但不是以倍數增加,而是減少。因此,再不同的狀態、環境之下,去評估一個演算法是困難的。雖然如此,演算法對我們來說,是一種良好去思考可行性的方法,這對我們未來解決問題是較有利的幫助。

  參考資料http://0rz.tw/923PZ

賽局高手

    當初在選擇的時後,也是看到了他的簡介才選擇這本,給人的感覺是要對一件事件去

做出最佳的選擇.在看完後,老實說我跳了很多,因為內容大多舉政治政黨來去做說明,個

人並不太喜歡社會上因政治因素而鬧的紛紛擾擾,所以沒特別去關心過去所發生的細節,

所以書中部份以過去所發生的實例來去做說明,就不是非常明瞭,所以我個人認為,他政

治例如能夠少舉一點,用其他實例是蠻不錯的,但從其他的地方,他說明了在社會之中,我們

經常面臨到許多的選擇,怎麼樣的選擇會可能帶來什麼樣的結果,用怎麼樣的策略可以扭曲

目前所在的困境,書中也提到歷史故事見空城計等,都是在困境當中,能用最佳的策略去來

突破目前的困境,在現實當中的我們,也有可能受到如此的困境,當然這也是要看我們要用

怎麼要的策略去面對,如何去利用到賽局理論去看透參賽者的選擇會造成那些結果,去使自

己能夠選擇到最佳的決定,正如同書封皮後的一句話"人生無處不權謀......",人生的經歷

是在賽局裡,但就要靠自己要如何應用權謀、策略,來達到自己想要的最佳結果,能讓自己

真正成為一個賽局高手.

隱藏的邏輯

    當初選這本書的原因,一是聽到班上有許多人選這本書,二是看到他的相關簡介,

"我們能預測股市的波動走向嗎?

今天該走那條路上班,才不會塞車?...etc "

上面所舉的兩個例子是現實生活中的最常遇到情形,所以就選擇這本來閱讀

讀完了這本,了解到有些社會上的細節是我們在平常生活中不太可能去注意到,

原因是習以為常,但有時,我們發現了這些細節,卻不知這是出自於什麼原因?

在這本書中,就清楚的闡述到了.

    也許我們一開始認為這些原因是出自於"個體",但其實不然,在書中就曾提到有一個人

被迫參加納粹的遊行活動,但他的本意並非如此,他本意是與遊行的意念背道而馳,但他又

不得去接受現況,以及在高速公路上,無緣無故,完全沒有任何的交通事故,卻發生了塞車

的狀況,這又是為何原因呢?書中解釋為幽靈塞車,原因往往出在車多情形,只要有一、二

輛車慢了下來,後方因為保持安全距離,也不得不慢了下來,這也造成後方的駕駛,往往產生

這種問題,在這次的過年當中,南北往來,我也遇到了這種情形,這些原因都出自於「模式」

    往往在社會中所發現的群眾問題,我們都過於把它們想的複雜化了,其實我們可以將它

們去依照著它們的既有「模式」去走,其實我們都不難去了解其中原因,但問題就是─

我們該如何去尋找該事件所既有的「模式」.

頁面