Coding the Matrix (1):向量

 

1. list 畫點

>>> from plotting import plot
>>> L = [[2, 2], [3, 2], [1.75, 1], [2, 1], [2.25, 1], [2.5, 1], [2.75, 1], [3, 1], [3.25, 1]]
>>> plot(L)

 

2. 縮放

alpha × vec = [alpha × elem for elem in vec] 編程

>>> def scalar_vector_mult(alpha, v): return [alpha*x for x in v]
...
>>> v = [3, 2]
>>> plot([scalar_vector_mult(i/10., v) for i in range(11)], 5)

 

3. 仿射:加乘組合

獲得從 [0, 0] + [0.5,1] 開始到 [3, 2] + [0.5, 1] 結束的線段。 這種表示方法對 端點來講不具備對稱性。如何轉換? 加密

如今對於端點來講就具備對稱性了。經過這兩個端點的直線包含了兩個端點對應向量的 仿射集合。spa

4. GF(2) 加密

a) 要將期中考試的一份試卷交給兩個助教,爲了防止某一個助教舞弊,發給兩我的的加密後的數據必須 合二爲一才能進行解密,具體過程以下:scala

b) 電腦認證登錄——黑客可能竊聽,不適合直接傳輸用戶密碼。解決方案:電腦給出一串二進制問題,用戶掌握一串二進制密碼,在 GF(2) 上點乘(先乘再加),獲得輸出。code

黑客竊聽到數個電腦的問題 alpha 和用戶計算後的結果 beta,須要知道用戶的密碼,須要解方程:blog

 

5. 點乘

兩個向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的點積定義爲:class

在歐幾里得空間中,點積能夠直觀理解爲:import

用公式能夠表示爲:音頻

直觀地說,就是向量 A 在向量 B 方向的投影,再乘以 B 的長度。若是將 B 的長度標準化,那麼點乘就能夠表示兩個向量之間的類似性了。好比在一段長音頻中匹配一段短音頻,能夠把短的音頻逐個日後移動,每次移動進行一次點乘計算,值越大,類似性越大,DFT 和 DCT 變換都是基於這種操做求不一樣頻域的組分大小的。二進制

 

 

編程待續:點乘——用字典類型編寫向量類

                             用向量類解三角線性方程組的根

相關文章
相關標籤/搜索