看板 Prob_Solve 關於我們 聯絡資訊
※ 引述《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)