数学 —— 巧用进制
例題 天平稱重:變種三進(jìn)制
用天平稱重時(shí),我們希望用盡可能少的砝碼組合稱出盡可能多的重量。
如果有無(wú)限個(gè)砝碼,重量分別是1,3,9,27,81,……等3的指數(shù)冪,
神奇之處在于用它們可以稱出任意整數(shù)重量(砝碼允許放在左右兩個(gè)盤中)。
本題目要求編程實(shí)現(xiàn):對(duì)用戶給定的重量,給出砝碼組合方案。
用戶輸入:
5
程序輸出:
9-3-1
用戶輸入:
19
程序輸出:
27-9+1
要求程序輸出的組合總是大數(shù)在前小數(shù)在后。
可以假設(shè)用戶的輸入的數(shù)字符合范圍1~121。
思路
1, 3, 9, 27, 81,……
30,31,32,33,34,……
聯(lián)想到用3進(jìn)制解決問(wèn)題。
假設(shè)是二進(jìn)制:
1,2,4,8,……
假設(shè)要稱重量為10的物品,10轉(zhuǎn)換為二進(jìn)制是1010,代表取2和8兩個(gè)砝碼就能稱出10,11轉(zhuǎn)換為二進(jìn)制是1011,代表取1、2和8三個(gè)砝碼就能稱出11,……
如果把5轉(zhuǎn)換為3進(jìn)制為12,1代表要取一個(gè)重量為3的砝碼,2代表要取兩個(gè)重量為1的砝碼,但是題目中并沒(méi)有說(shuō)可以用多個(gè)砝碼。
如果把5轉(zhuǎn)換為變種3進(jìn)制可以表示為(2,-1)3=(1,-1,-1)3,這樣就能夠表示為題目中給出的9-3-1。
二進(jìn)制代表了兩種狀態(tài),取或不取,但是三進(jìn)制代表了三種狀態(tài),放在左盤、不取、放在右盤。
對(duì)于要稱重的數(shù),先轉(zhuǎn)換為3進(jìn)制 ,然后翻轉(zhuǎn)(放置越界),之后轉(zhuǎn)成字符數(shù)組,掃描;如果遇到2就將其自己變成-1,下一位+1;如果遇到22的情況就將2變成-1,下一位變成0,后面一位+1;最后,恢復(fù)成10進(jìn)制。
總結(jié)
以上是生活随笔為你收集整理的数学 —— 巧用进制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Virtual Judge —— Nim
- 下一篇: Dictionary Aizu - AL