or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
2023-10-24 / 2023-10-31 問答簡記
2022 年下半產業狀況
用數學賺錢
IC 設計市場
Qualcomm's QCT (semiconductor) division outpowered QTL (licensing)
雖然手機相關晶片業務仍有顯著成長,但 Qualcomm 手機業務營收出現趨緩,技術授權業務依然是 Qualcomm 目前重要營收來源。
依據 Qualcomm 在 2022 年第四季財報,總營收同比增長 22% 至 113.9 億美元,調整後每股盈餘為 3.13 美元。公司已開始停止招聘,同時也準備在必要時刻降低營運支出。
2022 年第三季全球前十大 IC 設計業者營收依序為:
Cirrus Logic Completes Acquisition of Wolfson Microelectronics
Will Semiconductor (韋爾半導體) 來自中國資本,對照 OmniVision Technologies
2023 年排名 (第一季) : 出處
\(\to\) Integrated circuit (IC) design companies revenue worldwide from 2017 to 2023, by quarter
System Design Course
Content Delivery Network (CDN)
the benefits of CDN, including:
B+ Trees Implement in SQL
以下圖例以 5-way 為例(一棵樹的每個節點的度數小於等於 5)
B+ Trees 將所有資料(Data)存在 leaf node 上,leaf node 之外的 node 只會儲存 key 供索引,且每個 leaf node 會直接接到下一個 leaf node,可以利用類似 Binary Search Tree 的方式去搜尋目標值。
因為 B+ 將 leaf node 串接了,所以可以僅一次的搜尋就做到範圍查詢,以上圖為例,要搜尋 key 介於 5~16 之間的 Data,僅需搜尋下限 key = 5,並利用 leaf node 之間的 pointer 就可以將 5、6、7、9、12、16 這些目標找出。
對於硬碟來說,每個區塊大小固定,且 B+ Tree 的非葉節點只須儲存指標(Key),當 Data 所需空間很大時並不影響非葉節點,所以可增加(相較於 B Tree)每個 node 的指標數量,以減少 I/O 次數,因此被應用在 MySQL 的 InnoDB 中。
模擬面試檢討
針對正整數在相鄰敘述進行 mod 10 和 div 10 操作,如何減少運算成本?
\(\to\) 利用除法原理將 mod 10 和 div 10 合併
根據除法原理:
\(f = g \times Q + r\)
可以將 mod 10 和 div 10 合併,以此來減少除法的數量。
\(\to\) 利用 bitwise operation 來去除除法運算
參考 Hacker's Delight 來實作除法。
探討精確度
這裡採用 bitwise operation 來實作除法,因為 \(10\) 有包含 \(5\) 這個因數,無法完全用 \(2\) 的次方項來表示,因此結果會是不準確的。然而,觀察上面的程式碼後可以發現,
temp
不可能會大於19
,因此只需要考慮19
~0
的情況即可。我們的目標是,得到
temp / 10
且直到小數點後第一位都是精準的。這時,我們可以提出一個猜想,假設我們我們目標的最大數是
n
,l
則是比n
還要小的非負整數。那麼假設 \(n=ab\) (\(a\) 是十位數 b 是個位數),且 \(l=cd\) (\(c\) 是十位數,\(d\) 是個位數),則只要以 \(n\) 算出來的除數在 \(n\) 除以該除數後在經確度內,則 \(l\) 除與該除數仍然會在經確度內。證明如下:假設 \(x\) 是除數,
\[ a.b\leq\frac{n}{x}\leq a.b9\\ \Rightarrow\frac{n}{a.b9}\leq x\leq\frac{n}{a.b} \]
\[ c.d\leq l\times\frac{a.b9}{n}\leq c.d9\\ \Rightarrow c.d\leq cd\times\frac{a.b9}{ab}\leq c.d9\\ \]
\[ c.d + \frac{0.09cd}{ab}\leq c.d + 0.09 \]
因為 \(ab > cd\) 因此上述式子依然成立。
因此,前述猜想也成立,接下來只需要針對
19
來做討論即可。\[ 1.9\leq \frac{19}{x}\leq 1.99\\ \Rightarrow 9.55\leq x\leq10 \]
接下來只需要找到這之中可以用除法來表示的除數即可。
找到除數
方法如下,透過 bitwise operation 得到的算式必定是 \(\frac{an}{2^N}\) 其中 \(N\) 為非負整數, \(a\) 正整數。因此只需要透過查看 \(2^N\) 再配對適合的 \(a\) 即可。
其中, \(2^N=128, a=13,\frac{128}{13}\approx9.84\) 便是一個可以使用的解。
實作除法
接著,嘗試透過 bitwise operation 來配對數值。
關於這段程式碼,思路如下:
觀察 \(13\) 後可以發現, \(13=8+4+1=2^3+2^2+2^0\) ,因此,首先要做的便是,使用 bitwise operation 得到 \(\frac{13temp}{8}\)
\(\frac{temp}{8}+\frac{temp}{2}+temp\)
temp
減去 div 10 的結果乘與 \(10\)(((q << 2) + q) << 1)
就是 (\(q\times 4 + q)\times2\) 也就是 \(10\times q\)測試結果如下:
執行結果:
結果正確。
可包裝為以下函式:
使用案例:
延伸閱讀:
路易十四
屎地芬森