SharedIPython001-BasicCalc_empty.ipynbOpen in CoCalc
IPython001 BasicCalc

IPython 可以當成個威力強大的計算機,首先就用他來執行一些計算。

  • 要讓指令執行顯示需要按 (ctrl+enter) 才能執行。

1. 請計算一年有多少分鐘:


在作計算之時,可以取個有意義的變數名稱(避免用 x, y 會不方便閱讀) 若取了變數名稱,要顯示結果需要在輸入一次變數名稱

2. 請用變數 day2sec 來表示一天有多少秒,並顯示其結果


86400

3. 用變數 year2day 來表示一年有 365 天,並利用 year2sec = year2day*day2sec 計算一年的秒數。


31536000

4. 對於次方的計算需要用 ** ,請試著計算 2 的 64 次方,並將其存在變數 time_sec


18446744073709551616

5. 參閱此河內塔傳說 [https://zh.wikipedia.org/zh-tw/汉诺塔] ,裡面寫著將 64 個盤子都搬移完畢,需要 26412^{64}-1 次移動。若每次移動需要 1 秒,則全部移動完畢需要多少年?用變數 time_year 紀錄答案。

Hanoi Tower


584942417355.072

6. 請將 time_year 取 log 來得此數約幾位數。在取 log 時,需要 import math ,使用 math.log 來取 log 。但注意,電腦程式中的 log 都是以 e 為底數,因此需要使用換底公式。

log10x=logexloge10 \log_{10}{x} = \frac{\log_e x}{\log_e 10}


11.767113115559427

7. 宇宙的歷史至今有 137 億年, time_year 是否比 137 億年長呢? 利用「time_year > 1.37 * 10 ** 10 」輸出結果。


True

Ex.1 在前文提到 ** 用來次方,但在很多時候,我們會用 ^ 表示次方。 你自己試著用幾個例子,看可否猜出 ^ 的運算規則。(提示與二進位有關係。)

print(1^1,2^1,3^1,4^1,5^1) 
0 3 2 5 4

Ex.2(a) 你可以試著計算 1.013651.01^{365}, 1.13651.1^{365} 各是多少?

print(1.01**365, 1.1**365)
37.78343433288728 1283305580313390.5

Ex.2(b) 1.13651.1^{365} 是幾位數呢?

math.log(1.1**365)/math.log(10)
15.108330082752152

Ex.3(a) 請計算 222222^{2^{2^{2^{2}}}}

power2 = 2**2**2**2**2

Ex.3(b) 222222^{2^{2^{2^{2}}}} 是幾位數?

math.log(power2)/math.log(10)
19728.301795834668