發表文章

目前顯示的是 2月, 2014的文章

高手的氣場

今天上「演算法設計與實作」這門課,說真的,我來成大第一次感受到這樣的氣場─ 高手密度高的氣場、另有些微的宅氣參雜在其中 或者可能是因為我來課堂之前,聽老師說過這門課作業分量很重、最好要有當9學分來修的心理準備,所以我預期會修這門課的人應該要嘛是高手、要嘛有熱忱、要嘛有執著,這種預期使得我在這門課感受到許久未有的感覺 老實說,我滿高興的,雖然我知道我和他們可能有差距 p.s.後來幾天下來發現一週作業量很重真不是蓋的,遠遠超越我過去修過的任何一門課...,甚至相當於我某些學期所有課的幾週作業量總和

2014/2/21 想修一門課真不容易

今天終於加簽到日文了,在這之前曾去三堂日文課抽籤碰運氣(因為想加簽的人數眾多,十幾個以上,一堂只給加簽5個),都沒抽中,這次經驗讓我體會到想修一門課真的不容易,從來沒有過這種感覺...

寒假四個禮拜學了c++哪些東西

參考 Accelerated C++ Practical Programming by example (ACPP),會找這本書,是因為剛放寒假的時候上Amazon找C++的書、看書評,剛好在 Thinking in C++ 的第一個書評,那個人講他學習C++的過程,並建議先看ACPP(top→down)再看Thinking in C++(down→top),以獲得足夠全面的理解,然後剛好學校圖書館有ACPP,我就借來看了,看了之後覺得讀起來很流暢就這樣繼續下去了 目前讀到Ch11 define ADT,但是還沒寫過template function、定義一個class(含一些member function)來解決問題,前幾章本來都是練書上的習題,可是後來發現它們實在難以引起我興趣,我就改寫 uva online judge 上的題目,從這網站上的 一顆星問題 開始(後來發現 另一個網站 有更詳細的難度分級、而且有中文翻譯),用到「string、vector、還有它們的一些member function、iterator、ch6講到的一些常用的stl facilities、ch7講到的map、上社團問人得知的stringstream」,我後兩個禮拜讀的進度很少,以寫程式練習為主 可能因為目前遭遇的問題還不足以需要用到template function、定義一個好用的class,所以練到的C++部分都侷限在上面「」裡的東西,可以說我這四個禮拜主要花在熟悉C++的一些內建facilities上了,還有累積一點寫程式、debug經驗 學到目前為止對C++的印象,比起C,應該就是可以用的內建facilities很多、很好用吧(可能跟讀的書是ACPP有關),像vector有很多member function,size(), begin(), end(), push_back()...,比起那時候學C,只有很陽春的array,這在解一些之前用C寫過的問題時感受特別明顯,那時寫很久、不然就是很冗長、還常常寫不出來,不過這可能是因為C是我第一個學的程式語言&&當時不夠熟悉&&它內建facilities真的比C++少,而C++是我第二個學的程式語言&&我有些寫程式經驗了&&C++的內建facil...

收假要回台南前整理出的一些反省

§心態 不卑不亢,得意忘形的時候想想自己像喪家犬時努力的樣子,覺得自己一事無成的時候想想之前不可一世、藐視他人的心態,腦充血、心中一股氣也許給自己動力,但目前在學、在做的事情多半要靜下來才做得好 幾個月前有「自己的問題都很頭大了,哪有時間管別人」這種想法,似乎覺得因此不關心別人是理所當然的,但這樣的後果之一就是:在自己陷入困境或心情很糟的時候常常無人聞問,隱隱約約會希望得到幫助,同時會想,既然自己在遭遇麻煩的時候都是獨自一人解決,看到別人有麻煩的時候也讓他們自己想辦法就好, 這時心情更惡化 ,也更促進了前述「我陷入困境或心情很糟的時候無人聞問」的狀況,陷入一種不良循環 不要低估環境對自己的影響,在想玩、想讀書、想暫停...的時候,想一下是不是受到附近人事物、聲音...的影響了,是否必要、值得中斷手頭在做的事情?起了情緒更是多餘,通常要嘛就離開目前所在地,不然就是花點時間改善所在地的狀況 我現在的心態應該像考生一樣?不,轉系是邁向中期目標的其中一條路,中期目標是培養謀生技能、至少要能在外面混的不錯,轉系、取得大學學歷都是可能的路線而已 因為自己的年紀和年級,我漸漸變得務實了? 不要對人事物有不正確、不洽當的期望 例如認為修過哪些課之後,自己應該被訓練成擁有什麼能力(之前類似的期望落空總讓自己有情緒?);老師應該教得讓學生好吸收(認清現實,目前的制度對老師的教學評比不重視,使得許多老師們不注重教學,自然教學品質差強人意) §學習 目前所在的環境(家裡、住處)幾乎沒有對資工、寫程式的熱情或能力培養帶來任何養分或刺激,我指的是相關的人事物,例如:可以一起討論的人、前輩、指導者、甚至是問你問題的人...等等,所以進步緩慢,也很容易「熄火」 在寫作業、寫程式、準備考試,很煩或是不想做的時候,想想自己之前在類似心情或狀況的時候怎麼克服的,休息一下繼續(有時候煩倦感會消失不少,甚至休息後就想到解決的靈感)、問人(對解決問題有直接的幫助),另外,自己這樣放棄對得起過去累積的努力嗎? 自己能坐在這裡,有誰支持著、付出著,比起來,自己過的真的是爽日子 §人際 跟人建立關係的能力我真的很貧弱,我連打電話回家都做的...,好歹從這點開始做起,每天吧 注意自己有沒有把不必要的情緒展現在言行舉止上...

uva 10035 Primary Arithmetic

這個問題其實很簡單,就是把兩個小於十位的非負整數相加,求相加的過程總共進位幾次 例如 123 + 456,完全沒有進位到,因為3+6<10, 2+5<10, 1+4<10 123+127,進位一次,因為3+7=10, 2+2+ 1 <10, 1+1<10 問題簡單歸簡單,但我遞交 UVa online 第11次才Accepted ,前面得到wrong answer 9次、compilation error 1次,debug的全部時間加起來大約有兩、三小時吧,坦白說真的有點挫敗和無奈 起初我以為是輸出格式錯誤,有的問題是一次給完所有input,計算完一次把所有答案印出來;有的則是一筆一筆給,output也就一筆一筆印;有的會要求用一個空白行區隔、有的不會 但我確認這次是一筆一筆給、然後一筆一筆印 所以 應該是邏輯錯誤沒錯 ?系統判斷出錯的機率極低,我這樣假設 於是我就試著丟一些input進去看能不能找到問題出在哪,但看不出來...,丟進去的資料給的結果都正確 我又想是不是不滿足input格式?小於10位的unsigned integer,在大部分情況下,用long long是足夠的,int也可以 我google找了別人的程式碼,丟進系統結果accepted,然後看它運作時的輸入、輸出格式,跟我的一樣 實在受不了,我就看了別人的程式碼跟我的到底有什麼不同,嗯...,判斷的過程比我的簡潔明瞭許多,然後我注意到第24行while loop那個判斷要不要繼續做下去的條件,他是打||,我打&&,我恍然大悟!突然想到我的程式會跑出錯誤結果的例子 977+23,7+3=10, 7+2+ 1 =10, 9+ 1 =10,總共進位3次 但我的程式對這個例子的判斷結果會是2次!因為最後9+1這次沒判斷到,我以為當兩個整數不同位的時候,判斷到小的數字的位數就足夠了,以這個例子而言較小的數字是23,我以為判斷完兩位的相加就好了... 這次經驗,老實說一樣是犯了之前常犯的問題: 演算法不夠清楚或確認其正確性之前就開始寫程式 ,這個問題確實夠簡單,解法大部分人想一下大概就差不多,然後開始寫,大部分情況可能第一次或前幾次就Accepted,但這次剛好我想岔了一些,結果就是debug地獄 ...