R

    雷德麥的藏書閣

    文章目錄 文章歸檔 特色標籤 關於作者
    CS Note pads 關閉側邊欄 顯示模式

打造一個書籤管理網站

發表於 2015-10-26   |   分類於 網頁設計   |  

最近系上的OJ不幸陣亡,打算自己東敲西打搞出一個新的批改系統,適逢這次的作業是個書籤管理網,需要登入介面及支援線上修改,不妨就拿來小試身手吧 ~

閱讀全文 »

插入排序法

發表於 2015-09-22   |   分類於 演算法   |  

插入排序(insertion sort)是一種排序演算法,它將一個數列分成已排序與未排序兩個部分,透過不斷將未排序數列插入至已排序數列的正確位置達成,嗯…這個定義唸起來實在有些饒口,不如讓我們看個實例:

假設我們要由小到大排序數列:

1
25 49 22 33 47
閱讀全文 »

短路求值

發表於 2015-09-07   |   分類於 程式語言 , 語言原理   |  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
What is the output of this program ?
猜猜看,這個程式的輸出是什麼?
*/


public class Problem {

public static void main(String[] args) {

Problem p = new Problem();
p.evaluation();
}

public boolean sayHello(){

System.out.println("Hello");
return true;
}

public void evaluation(){

boolean t = true;

if(t||sayHello()){
System.out.println("finish");
}
}
}
閱讀全文 »

古典密碼學

發表於 2015-08-15   |   分類於 資訊安全   |  

古典密碼學已經被電腦打爆了,但這跟它重不重要一點關係都沒有。
── 我的資安導師總是這樣嘮叨著……

最近重新改寫以前的Blog,終於理解這句話的意涵。舉凡近代加密演算法,多為古典密碼學手段的組合,只不過以前人力與能力都不及。

比方說你不會想把16個字母放進一個矩陣中,每個查表代換10次,再每行平移幾個單位,然後各別乘上一個矩陣,最後再和別的矩陣做XOR邏輯判斷。

Welcome to modern cryptography

這也太繁瑣了,正常人才不會想圈圈畫畫這些詭異的流程。不過,若將這些細項拆開來看,平移對應到移項式密碼,代換跟替換式密碼有關,矩陣運算則是來自希爾密碼,XOR就比較特別了些,但兩無關序列間的運算,可讓人追溯至維吉尼亞密碼的金鑰概念,這些都屬於古典加密的範疇。所以若想踏入近代密碼的殿堂,古典密碼當為一個必經的前哨站,助於釐清算法本身的原理與優劣勢。

閱讀全文 »

前置處理器

發表於 2015-08-13   |   分類於 程式語言 , C   |  

前置處理器 = 進行「前置處理」的文字編輯器。

或許我們得先解決什麼是「前置處理」。
從說文解字的角度出發,它做的是某件工作的事前處理,在C和C++中,我們指的是進行編譯前的處理工作,大致上可分為:

  • 引入標頭檔(Header file)
  • 進行文字的取代
    • 巨集、常數的定義……
    • 條件式編譯

具體而言,在程式中前有 # 的部分就涉及了前置處理,比如#define、#Pragma與#include等等。

要注意,前置處理器並不屬於C編譯器的一部分,它也不了解C家族的語法,如果你用C的觀點來審視它可能會碰上大麻煩。

閱讀全文 »
1234
Justin Yang

Justin Yang

16 文章
11 分類
29 標籤
RSS
GitHub Google
© 2018 Justin Yang
Powered by Hexo
Theme modified from NexT .Mist