作者AmosYang (LetMeGoogleThatForYou)
看板Prob_Solve
標題Re: [問題] 請問一下2*2*2*2*......的問題
時間Fri Jul 30 06:15:55 2010
※ 引述《linkone (小豆豆)》之銘言:
: 題目給你首數 EX 1 的話 要知道是2^7次方 因為2^7=128
: 若給 10 的話 要知道是 2^20次方 因為2^20=1048576
: 他還有一個限制就是說 未知的數目一定要比已知多
: 像題目給1的話 求出來 128的28就是未知 28有兩位數
: 想請問一下 這是什麼數學概念可以知道首數就已知道 2^X次方
假設我們身在一個浮點數計算沒有誤差的世界…
假設題目給的數字是 x, 一個 n 位數的正整數
算出
L = log (x * 10^(n+1)) / log 2
U = log ((x+1) * 10^(n+1) - 1) / log 2
若 L 與 U 中間有夾任何整數 k, (i.e. L <= k <= U, 且 k 為整數)
則 k 為一解
如果沒有夾到任何整數 k, 那就
L += log 10 / log 2
U += log (10 + 9 / 2^U) / log 2
再看看有沒有夾到任何整數… loop 到你爽為止…
(算法不止一種…上述的方法是我覺得最直接的)
: 他還有一個限制就是說 未知的數目一定要比已知多
看不出來這限制的意義何在…
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 65.87.177.87
推 linkone:所以說要一直計算到 K有整數部分就是了嗎 ? 07/30 13:48
你覺得咧?
→ linkone:如果求出1.032 的話代表K為1嗎? 還是要算到L跟U的差為整數 07/30 13:49
你覺得咧?
→ linkone:看了你的公式總算是知道概念了~ 謝謝你 07/30 13:51
不客氣
→ linkone:那題我昨天用暴力法把他解出來 但是一直不清楚真正的算法 07/30 13:52
→ linkone:請問A大他這個公式輸入10 會算出 10 還是 20?? 07/30 13:55
你覺得咧?
送你兩個連結…讀一讀對你有好處 :)
http://zh.wikipedia.org/zh-tw/%E5%AF%B9%E6%95%B0
http://mis.ndhu.edu.tw/docu/question.htm
※ 編輯: AmosYang 來自: 65.87.177.87 (07/30 21:00)