2014年6月22日 星期日

R + Latex + Markdown 介紹

在 github 新增中,有個增加 README.md 的檔案選項,之前簡單的認為 .md 就像是 .txt 一樣,我想我思考方式有點錯誤, .md 檔也很神奇啊!!

.md 可以看成 .tex ( 簡單版 ),但也比 .tex 好上手, .tex 的優勢就是漂亮的數學公式;如果三個加起來,就可以成為很棒的文章利器 ( 我還在嘗試中XDD ),而這三個的結合就是 .Rmd 。
RStudio 內的 test2.Rmd 樣式
依照上面的程式經過轉換後就可以成為

test2.html 畫面

R 主要是用來做統計、繪圖等數據分析而使用,而 LaTex 則是很棒的排版軟體,可以增加很多 package 來達到很棒的效果,而 Markdown 在我的看法,比 LaTex 來的簡單,等級和 word 差不多,但又比 word 來的簡便 ( word 有的功能真的很不直覺 ),所以說不想用 word 可以用 Markdown 看起來效果差不多 XDDD 。

至於 R 、 LaTex 、 Markdown 這三個,我可能還得再花時間學習吧,每個看起來都挺有趣的說wwwwwww

2014年6月13日 星期五

git for c++

最近在網路上看到很多人貼的 git 的文章,雖然很多都很棒,但資質愚笨的我很多都看不太懂,最後靠著網路上某位使用 SourceTree 的文章,一步步地練習 ( 大概重新開新檔案10幾次 ) 才知道 git 的神奇之處 ( 還有待學習就是了 )。

git 網路上很多關於它的介紹文,在此我就不再重複直接進入正題吧XDDD

b016.cpp git 圖

上圖是我 git 練習用的 b016.cpp 程式,前半段真的很賞心悅目,最後一步是要測試本機上傳到 github 的情況 ( 跳出樹狀結構了Q_Q ),在此我先講一下我的設計過程:

在 master、develop、feature、release 的認知上我是這樣解讀的:

master:主要的版本,也就是傳送出去的完全版,簡單來講就是已經 ok 發售的版本。
develop:開發中, feature 結束後會回歸 develop ,簡單來講有點像開發者的主幹道。
feature:新功能,在 develop 延伸出去的功能測試,可以不完結,但是如果回歸,會回到 develop 。
release:釋出,當 feature 完整回到 develop ,且 develop 經過測試後無誤,就能夠使用 release 釋出發售版。

程式開發過程:

主要是 b016.cpp 的改造,程式可以在 b016 下載到

1. 一開始 master/develop/feature f1 會在同一個節點上,每當我改變 b016a.cpp ,feature f1會前進

2. 我放棄 b016a.cpp 程式,由於開發的錯誤,我回到原點新增了 feature f2 b016b.cpp 這程式

3. 要合併 b016b.cpp 和 b016.cpp ,最後釋出 v0.1.0 版本,在途中利用 b016b.cpp 測試 *vit 的功能,也就是 feature f5

4. feature f4 做了重新排版,但是沒有改變功能

b016.cpp git 改進圖

5. feature f5 的結束

6. 在 github 新增了一個 b016 git 新增進入

7. release v0.2.0 版本

8. 準備 push 到 github 上

大致上是這些功能 ( 有些感覺上是為了 git 而測試,而有些是真的有在 b016 的改進 )


說實在話, git 對我來講可能只是輔助工具,它讓我在寫程式的時候可以更加清楚我之後要做什麼事情,像是要增加功能就要 feature ,要釋出就要 release 。以前這些動作我都會混著做,常常一個恍神就忘記我在幹什麼了,之後又回到原點重新來過,這樣一來一往就花費了很多時間;當然啦 git 好不好用見仁見智,只少它幫很很大的忙XDDDD

2014年6月6日 星期五

b012: 羅馬數字

b012: 羅馬數字 這題真的非常經典,說起來這題我花了很多的時間XDDDD

這題也讓我知道 "相信" 的重要性,說實在話,很多時候我都不太相信,輸入者的 input ,始終認為會有人故意亂打資料來做判斷;其實要做那些判斷也很簡單,但是我認為,寫程式就是要互相信任,要相信使用者有按照需求執行,畢竟總是以懷疑的眼光看著別人,別人也是以相同的眼光看著你。

===============================================

這題的要求有一點

  1. 羅馬數字轉阿拉伯數字
演算法部分我使用了
  1. 先判斷羅馬字母
  2. 全部加總
  3. 把多加的扣掉
就那麼的簡單,至於程式我就放在下方

程式的部分我有使用 map ( 用的很糟糕="= ),但我覺得很有趣XDDD ,有空或者有新的想法就會在po不一樣的程式碼上來!!


2014年6月2日 星期一

container (容器) list 使用 + b001: 最後倒數 (**)

容器是我第一次的使用;在我的理解中容器有點類似"盒子",具有空間,而空間中的物體具有類似的功能,和原先的基本型態有點不同,比較屬於把功能類似的聚在一起,而不僅是型態一樣的放在一起 (可能解讀有點錯誤,如果有錯請見諒XD )

會想使用容器,主要在於演算法的部分;像是排序、搜尋等。我始終認為演算法雖然把實作的部分抽離出來,但是對於一個程式設計師而言,還是需要了解具體的實作方式 (除非不碰程式碼) ,而程式的使用我認為分三個部分:

  1. 不會使用
  2. 濫用
  3. 正確使用
不一定三個部分都需要、但依照這個三個部分可以知道自己問題所在。

=======================================================




上面的版本是 list 的版本,至於簡單的版本我就不貼了XDDD ,我怕會有人拿來抄,所以就不公佈了,至於效能方面其實是相同的 (經實測是沒有差別的) 。