:) 標題是開玩笑的,千萬別認真。 隨著AI的飛速發展,有志於此行的碼農也是急劇的增加,帶來的就是大家對演算法、數學的興趣也格外升高。 本文的來歷是這樣,今天某老同事在朋友圈發了一張屏拍,求公式。 看了一下還是難度不大,上半部分基本是兩個半圓,下半部分是兩個旋轉了的反餘弦函數。 不過我的數學也比較渣, ...
:) 標題是開玩笑的,千萬別認真。
隨著AI的飛速發展,有志於此行的碼農也是急劇的增加,帶來的就是大家對演算法、數學的興趣也格外升高。
本文的來歷是這樣,今天某老同事在朋友圈發了一張屏拍,求公式。
看了一下還是難度不大,上半部分基本是兩個半圓,下半部分是兩個旋轉了的反餘弦函數。
不過我的數學也比較渣,看到這個步驟後面也就倒騰不清了,不過到這種程度在互聯網上搜一搜找到答案還是不難的,很快就找到了正確的公式(以y=0為界限,肯定是需要兩組解):
$$ y = \sqrt{1-(\left| x \right|-1)^2}, arccos(1-\left| x \right|)-\pi $$
否則只是搜心形函數,肯定會得到一大票各式各樣,但不吻合題意的圖片,比如:
驗證這個公式用mathmatic最方便,不過剛換了電腦,剛好沒裝。
最近在做python3方面的事情,5分鐘用python3寫了一個驗證程式,源碼附上:
#!/usr/bin/env python3
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-2, 2, 200)
y1 = np.sqrt(1-np.square(np.fabs(x)-1))
y2 = np.arccos(1-np.fabs(x))-np.pi
plt.plot(x, y1, 'r',x,y2,'r')
plt.axis([-2.5, 2.5, -3.5, 1.5])
plt.title('Heart of numbers, By @andrew', fontsize=16)
plt.show()
繪製的結果就是題頭圖。
程式用到了matplotlib和numpy兩個庫,運行前需要先用pip3安裝一下。
參考資料
https://www.quora.com/What-is-the-equation-that-gives-you-a-heart-on-the-graph