dcciou

@dcciou

Joined on Jul 12, 2023

  • contributed by < dcciou > 因為自動飲料機而延畢的那一年 作者遇到的問題跟我以前玩過的東西所遇到的問題蠻類似的,尤其是鐵工廠那段,當初也是等到天荒地老受不了改成自己弄。不僅僅是機械製造,任何以實體為最終成果的專案都有著令人又愛又恨的特點:紙上做起來感覺自己是天才,真的要搞成品的時候才發現自己是智障,原本理想的計畫做到最後只剩最簡單的功能,但這就是物質世界有趣的地方。找店家要數據那段,雖然他輕描淡寫的帶過,但個人經驗卻是刻骨銘心,就算告知店家自己是學生,數據是為了課程使用,甚至拿出證明文件,一但出了校門,基本上都會拒絕提供,最後只能乖乖找學餐阿姨。 另外感同身受的就是成本控制,窮學生永遠的痛。 軟體開發部分,以前只做過 line app,硬體也只是一片樹梅派,這部分沒有太多辛酸史。 電路部分,也就偶爾銲銲玩具的程度。 名言佳句的部分,大概是等價交換最有感觸了吧,健身多年,都是犧牲了什麼來達成什麼,完全可以理解。 專題簡述
     Like  Bookmark
  • # 2024q1 Homework6 (integration)
     Like  Bookmark
  • contributed by dcciou 測驗1:計算開平方根 這個問題考查的是如何計算一個整數的開平方根。給定的演算法透過逐位試探的方法逐漸逼近真實的平方根值。第一個版本使用了 log2(N) 來確定最高有效位,而第二個版本則透過位移操作逐漸找到最高有效位。這種方法的關鍵在於逐步縮小搜尋範圍,每次迭代都將可能的平方根值的範圍減半,直到找到精確的平方根值或最接近的整數值。 測驗2:字串加法的最佳化 這個問題探討了在執行字串加法時如何最佳化效能。在給定的程式碼中,透過逐位計算和進位的方式將兩個數字字串相加。最佳化的關鍵在於減少因除法和模運算帶來的效能開銷。透過一次性計算除以10的商數和餘數來避免直接的除法和modulus運算,從而提高演算法的效率。 測驗3:計算以2為底的對數 這個問題的核心在於使用位元操作而不是循環來計算以2為底的對數。透過檢查整數的位元表示,可以直接得出其以2為底的對數。例如,如果整數是16(二進制10000),它的以2為底的對數是4。使用GCC內建的__builtin_clz函數(計算前導零的數量)可以快速實現此計算。
     Like  Bookmark
  • contributed by < dcciou > insert_head 超時 bool q_insert_head(struct list_head *head, char *s) { - list_add(&new_element->list, head); + new_element->list.next = head->next; + head->next->prev = &new_element->list; + head->next = &new_element->list; + new_element->list.prev = head;
     Like  Bookmark
  • contributed by < dcciou > AAAA,BBBB,CCCC 在 list_tail 和 list_length 函數中,我們需要找到方式來traverse鏈結串列。 AAAA: 由於 list_tail 函數需要traverse到串列的尾部,我們會繼續透過每個節點的 next 指標traverse。因此,AAAA 是 (*left)->next,即當前節點的下一個節點。 BBBB: 在 list_length 函數中,我們同樣需要traverse串列,計算長度。所以,BBBB 同樣是指向下一個節點的操作,即 (*left)->next。 CCCC: 在 quick_sort 中提到,當處理當前節點後,我們需要移動到下一個節點來繼續traverse。因此CCCC 是 p->next,表示從當前節點移動到下一個節點。
     Like  Bookmark