每日一题

shishangzuiniubi 2011-08-09
怎样将一个20位的数字压缩成为10位之内的字符串?(支持解压)
ieiayaobb 2011-08-09
拆分成10个两位数,每个两位数对应成ASCII的字符
shishangzuiniubi 2011-08-10
谢谢楼上的回复,那么我再问下。

怎样将一个20位的数字压缩成为10位之内的数字呢?(支持解压)
ieiayaobb 2011-08-13
小弟愚笨,认为不可能实现,求楼主提示
yxc_gdut 2011-08-15
这个不可能实现,假如能实现,
第一:20位数字分成两个10位数字,也就可以解压成40位数字,以此类推,10位数字可以解压成若干位数字,若干位数字都可以压缩成10位数字。
第二:20位数字压缩成10位数字,那么必定有两个或者以上的20位数字经过压缩后得到的相同的10位数字,那么相同的10位数字怎能解压成两个或者以上的20位数字呢?
所以 不可能实现
ives 2011-08-15
进制?

--补丁--
DJ阿布 2011-08-15
yxc_gdut 写道
这个不可能实现,假如能实现,
第一:20位数字分成两个10位数字,也就可以解压成40位数字,以此类推,10位数字可以解压成若干位数字,若干位数字都可以压缩成10位数字。
第二:20位数字压缩成10位数字,那么必定有两个或者以上的20位数字经过压缩后得到的相同的10位数字,那么相同的10位数字怎能解压成两个或者以上的20位数字呢?
所以 不可能实现

自定义一个100进制的hash表,把二十位数字每两位拆成一组,找到对应的hash的key,就能实现20位变10位了。压缩解压都很easy。。
所以,不要随便说不可能啊。。
feelifecn 2011-08-15
不太明白,请上面明示,楼主改成10以内的数字,那么如果key是2位数字,对应的value是什么数字来表示呢?难道自己可以定义数字?如果这样,和ieiayaobb用ASCII来表示有什么区别呢?
我认为楼主只是说如何压缩,并没有说解压还原问题吧.
DJ阿布 2011-08-15
feelifecn 写道
不太明白,请上面明示,楼主改成10以内的数字,那么如果key是2位数字,对应的value是什么数字来表示呢?难道自己可以定义数字?如果这样,和ieiayaobb用ASCII来表示有什么区别呢?
我认为楼主只是说如何压缩,并没有说解压还原问题吧.


例:
hash.put("a","10");
hash.put("b","11");
.
.
.
hash.put("#","99");

101199-->ab#
ieiayaobb 2011-08-16
DJ阿布 写道
feelifecn 写道
不太明白,请上面明示,楼主改成10以内的数字,那么如果key是2位数字,对应的value是什么数字来表示呢?难道自己可以定义数字?如果这样,和ieiayaobb用ASCII来表示有什么区别呢?
我认为楼主只是说如何压缩,并没有说解压还原问题吧.


例:
hash.put("a","10");
hash.put("b","11");
.
.
.
hash.put("#","99");

101199-->ab#


只能是数字,字母不行
Global site tag (gtag.js) - Google Analytics