lintintsong

@lintin528

Joined on Feb 19, 2024

  • contributed by < lintin528 > 紀錄閱讀〈因為自動飲料機而延畢的那一年〉的啟發 看完這篇文章的第一個想法是佩服作者的恆心,更可貴的是他儘管在一開始就遇到冰塊無法分開的這個沒想到會遇過的問題時,能夠不斷地想出自己的解決方法並真的去嘗試可行性,就我的觀點而言,在計畫的一開始就遇到這種無法預見且來自於一個小地方的問題時,多次嘗試解決卻又無果時,肯定會產生很大的無力感,畢竟這只是初期準備而已,誰能知道後面機器運作、 pipeline 流水線規劃 、電路上又會有多少問題,如果是我的話或許在這一階段就有很大的機會放棄了。 「你不能現在就放棄,要是現在就放棄的話,你這輩子日後遇到這種等級的困難,就只會想逃避而已。」 這句話帶給我很大的激勵,或許很多任務都不是可以簡單地被規劃出解決方法的,這種時候嘗試就是最好的解決方法,我認為漫無目的地尋找能一口氣完成的方式,逐步進行試錯更能帶給我有在前進的感覺,而不會產生原地踏步的絕望感,而且這更能使自己熟悉所做的所有細節。學習也是這樣,總是需要先建立好基礎,才能構築出更完整的專案,我覺得自己總在學習基礎時感到迷茫,看不見學習完能實際表現出來的成果,或許就是因為缺少了這種實作精神,紙上談兵永遠都只是想像的,就像是這幾個作業,僅僅提到 "效能提高" 可能是不負責任的,但一想到那些數學證明或統計,我往往會有些退縮,但這就是真正能成就、驗證什麼的人會去做的,看完這篇文章,我看見了作者做出決定前不會去害怕這麼做是否會一無所獲,嘗試未知的勇氣,我自認基礎不足,非常不足,但我也不該將學習僅僅侷限在單方面的接納知識,更該驗證自己的想法基於我所吸收的是否相同,這些疑惑我都該自己嘗試去分析、解決,就像作者勇於嘗試找出每個問題屬於自己的解法一樣。 從前 4 週的測驗題選出 3 題改進 紀錄第 1 到第 6 週「課程教材」和 CS:APP 3/e 心得和提問 第四次作業中的第三周測驗題二
     Like 1 Bookmark
  • contributed by < lintin528 > 自我檢查清單 [ ] 研讀前述 Linux 效能分析 描述,在自己的實體電腦運作 GNU/Linux,做好必要的設定和準備工作 實驗環境 $ gcc --version gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO
     Like  Bookmark
  • contributed by < lintin528 > 2024q1 第 3 週測驗一 版本一 使用 <math.h> 之 log2 計算開平方根 該版本為透過 (int) log2(N) 求得 msb (Most Significant Bit) ,並且從 1 << msb 開始進行二分逼近法,往低位元逐個檢查當 該位元 = 1 即 (result + a) 時平方相較原本的 N 大或是小,以此設定低位元的所有 bits。 int msb = (int) log2(N); int a = 1 << msb; int result = 0; while (a != 0) {
     Like  Bookmark
  • contributed by < lintin528 > Reviewed by mervin0102 關於 q_merge 的實作,我的作法是使用 q_sort 中所使用的 merge 來將不同的佇列合併,這樣作的好處是, q_sort 在排序的過程中,仍會把佇列拆開再排序合併,然而 q_merge 中,已知每個佇列都是以排序的狀況,因此只需要注重排序合併就好,有此可知,呼叫 q_sort 較沒有效率。 但是我的作法仍有一些缺點,當需要合併的佇列數量龐大時,由於實作方法是將所有佇列與第一個佇列作合併排序,因此當第一個佇列長度越來越長時,合併會越來越沒有效率,改進方法可以參考 linux/list_sort.c ,將合併長度控制在 2 的冪次可以達到最佳的合併效率。 你的洞見呢?與其談「心法」,不如設想「如果我是你」,我會怎麼做,示範一次給同學看,而且檢討自己哪裡沒做好,從而呼應原本學員的不足處。 軟體工程師要學會說故事,本作業要求學員從良性詳盡的批評開始。繼續檢討! :notes: jserv
     Like  Bookmark
  • contributed by < lintin528 > 2024q1 第 1 週測驗一 Quick sort (連結) 測驗一 實作非遞迴 (non-recursive; iterative) 的快速排序法 基本函式功能分析 list_add 與在 lab0-c 之實作不同,此處使用間接指標的方式完成鏈結串列的節點移動,是因為這邊需要對節點的 head(即 *list) 做修改,因此不可使用 pass by value 的參數傳遞方式。 void list_add(node_t **list, node_t *node_t)
     Like  Bookmark