當一個數用進位()表達時,每個位數需要種符號表達,若要表達一個n位數字要儲存的元素 :
而進制系統中表示的n位數的資訊量()則有:
因此,在進制系統中以n位數能表示I的信息量所需的存儲元質數為:
在
之下,求出哪個能使最小即可, 即找到能使微分為0的。
因此解得以為底的進位制理論上能有最高的表達效率。
現在簡化一下,因為e進制有一點難實踐,我們只要做出進制轉換就行了,進制轉換的規則如下
此處以10進位與8進位轉換為例
395(10) = 613(8)
395 / 8 = 49 餘數 3 ↑ => 613(8) 49 / 8 = 6 餘數 1 | 6 / 8 = 0 餘數 6 |
另外亦可由8進位轉10進位
26(8) = 22(10)
26(8)=(2 * 81) + (6 * 80) = 22(10)
單筆輸出入
輸入有三個數 $n, a, b$
其中n為a進制下的數
b為欲轉換的目標進制
保證 $2 < a, b \le 10$
$n > 0$
且 $n_{(a)}$在10進制下在int範圍內
輸出一個數代表$n_{(a)}$在$n_{(b)}$下的表示
第一筆範例輸入: 395 10 8 第二筆範例輸入: 26 8 10
第一筆範例輸出: 613 第二筆範例輸出: 22
對$10 \%$ 數據$a = b$
對$20 \%$ 數據$a = 10$
對$20 \%$ 數據$b = 10$
其餘無特殊限制
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |