初入VSCode以及用麥克勞林公式法求ln x

2022-05-21 12:21:12 字數 1902 閱讀 1601

作為計算機萌新剛開始學python乙個月不到(老師給的anaconda安裝包,spyder),在周圍大佬影響下準備入坑vscode,不過剛開始用的時候出現了點小麻煩,貌似是vscode裡面沒找到python的編譯器(我也不曉得這是啥,甚至一度以為已經安裝的高亮python是個編譯器qaq)

大致就是,把anaconda資料夾設定為乙個環境變數,就可以讓vscode在此路徑裡面去找到可以編輯python的編譯器從而正常執行我寫的**

環境變數-path-新建-新增anaconda資料夾

折騰一番之後終於開啟vscode可以執行我寫的**啦!(ps:vscode真的是一款能讓你養成隨手儲存好習慣的軟體orz)

開始進入正題》

(我還沒有學會用markdown敲公式(淚目)就暫時用代替吧)

運用這個公式我們可以嘗試寫ln(x)(x∈(0,2])的**

def ln(x,n):                #x是使用者輸入的自變數,n是迴圈的次數

n=1m=0

while n<=n:

m+=(-1)**(n+1)*(x-1)**n/n

n=n+1

return m

print(ln(1.5,50))

不過這個**的侷限性在於它的定義域被限制在(0,2],要想求任意大於0的對數值,需要想辦法將任給的x變換到區間(0,2]之內:

據此我們可以寫出**

# ln計算函式(麥克勞林公式法)

from math import log,e

def ln(x):

result = 0

m=0while x/e**m>1:

m=m+1

x=x/e**m

for n in range(1,10000): # range(n)=[0,1,2,...,n-1]

result += (-1)**(n+1)/n * ((x-1)**n)

result+=m

return result

x=eval(input())

print('x=%.5f時,ln(x)=%.10f'%(x, ln(x)))

a=log(x)

print('x=%.5f時,ln(x)=%.10f'%(x, a))

就可以對任意的x進行對數計算了,不過我在執行中又發現了乙個小問題

程式設計師日常對筆記本效能檢測(qwq)——發現輸入這麼大乙個數時,使用者輸入的數與現實的「x=_時」竟然不一樣甚至相差很大

乙個原因是我想輸出的是5位小數,計算機再得到這麼大乙個數時要把它轉化成五位小數就會使用科學計數法,1.00000e--,再轉換成整數時造成了小數部分的丟失產生誤差

貌似後面生成的是一串亂碼,但是輸出兩遍都是同一套亂碼,說明亂碼和原資料之間還是存在一定的聯絡的,至於深層的關聯我還沒搞懂啊(萌新學渣的卑微)

浮點數精確度問題是乙個很重要的事情,所謂「失之毫釐,謬以千里」,但是我還沒有學到那去,這裡特別感謝在同班的乙個大佬的幫助下建立部落格寫了第一篇隨筆,希望在以後的日子裡學到更多的東西記錄在部落格裡,加油加油!

關於學業深造以及初入職場有感

博主今年剛畢業,由於之前初入職場,一直忙於工作和培訓,對部落格疏於維護,直到最近才準備恢復寫作。網上關於技術的文章很多,大家善用搜尋引擎可以學到很多知識,但是關於成長的分享並不多見,更難找到符合自身需求的經驗。所以今天我想分享一下這半年來的感受,以一名應屆畢業研究生的角度談談關於學業深造以及初入職場...

初入藍色之路

剛進入公司的前兩天基本沒有事情做,大家只是圍坐在一起,互相了解,聊聊天,還有乙個上一屆的實習生,叫王法,這個名字挺有意思的,不知道還以為是個律師。這個人雖然只是個本科生,年齡也沒有我大,不過給人的感覺挺成熟的,在公司裡已經游刃有餘了。他給我們講了許多公司的事,有了這麼乙個和我們年齡相仿,交流沒有任何...

初入linux安裝

virtual box vmware plyer,ubantu kylin 1.使用vitrual box安裝老顯示錯誤,無語 2.使用vmwareplayer安裝後ok了,進入介面輸入賬號密碼進不去,網上查資料,然後就輸入startx才進去了!使用vmware 安裝 安裝後無法wifi上網 1.配...