就是十进制的数转换成3进制的,看有多少位,就用多少个砝码来组合,是吧?
我还想问的是, 那个 加减 一起用的那个方法,找不到规律.(当然我不知道有没有.呵呵!)
不是看多少位,而是看每一位上的数字是多少,就代表有多少个砝码
比如12012,就代表用81砝码1个,27砝码2个,9砝码0个,3砝码1个,1砝码2个
那个加减一起用的方法,我不知道这个方法具体是怎么样的。但是猜一下,应该是和我的意思一致的。
因为这个问题是要用3的幂来进行组合,而3这样的基数有三种选择,用1次,用2次,以及不用。所以用上减法就意味着:用1次作为加法,用一次作为减法,以及不用这3种状态。其中用一次作为减法和我所说的用2个砝码是存在一一对应关系的。比如2这个数字可以用2次1加法得到,也可以用3作为加法,1作为减法叠加起来得到。
如果每个砝码都只能用一次的呢?
3进制还可以?
如果用上加减法就可以。关键只在于你要给每个砝码有3种状态可以选择
要么: 用1次,用2次,用0次, 这三种状态
要么:用1次作为正数,用1次作为负数,用0次,这三种状态
如果这里的砝码是4的幂,如:1,4,16,64,等等,那么你想要表达256以内的数,那么你就需要4种状态。这时候即便用上加减法也不可能每个数只用1次
怎么判断是第几种状态?
追答为什么要判断是第几种... 状态没有次序的...
追问哦,就是有2的 就分一次出来用来 减, 是吧.
追答嘛..可能你还不能从核心上理解这个问题,不过仅仅对于3的幂这个问题来讲,你这样理解已经没有问题了~
追问我的问题是:用什么方法来确定用几个数, 用什么方法确定加或减的组合方法.
追答那就基本就是刚才讲的,以我之前用的12012为例(这个数实际上是140)
首先转换成三进制,也就是12012
然后从末尾起查看每一位,对于第i位来讲(i从0开始)
1. 如果是1,则相当于用3的i次方一次
2. 如果是2,则相当于用3的i次方作为减法1次。并且向高位进1
3. 如果是0,则不需要用到3的i次方
对于12012来讲:
1. 首先第0位(最后1位)为2,所以相当于3的0次方(也就是1)作为减法1次(记为-1),并向高位进1,使得第1位变成2
2. 第1位现在变成了2,所以相当于3的1次方(也就是3)作为减法1次(记为-3),并向高位进1,使得第2位变成1
3. 第2位现在变成了1,所以相当于3的2次方(也就是9)作为加法1次(记为+9)
4. 第3位为2,所以相当于3的3次方(也就是27)作为减法1次(记为-27),冰箱高位进1,使得第4位变成2
5. 第4位现在变成了2,所以相当于3的4次方(也就是81)作为减法1次(记为-81),并向高位进1,使得第5位(由本来没有)变成1
6. 第5位现在是1,所以相当于3的5次方(也就是243)作为加法1次(记为+243)
完成,把上面的数字连起来即可:+243-81-27+9-3-1 = 140