求数字字串变短的方法或思路

DL_防火墙_LD 2011-02-15 02:29:14
现有一需求,要将一个长度最长6到8位,最短1位的数字进行操作,变为一个新的数字字串,最好长度为4位,并可还原回原数值的算法。 请高手指教一二。
...全文
313 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuchxiang 2011-02-24
  • 打赏
  • 举报
回复
我这里有一个是js的
ntopen 2011-02-20
  • 打赏
  • 举报
回复
这种算法是可以实现的,相信过不了多久市面上就会出现无限压缩程序
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 dlyhs 的回复:]
将一个6或8位(0-9)数字编码,通过一个算法,变成长度只有4位左右的新数字串,要求可以还原
[/Quote]

思路的转变是最好的算法!
G_beginner 2011-02-18
  • 打赏
  • 举报
回复
类似于hash呗,不过肯定会发生冲突,只能尽量避免冲突
ChDw 2011-02-16
  • 打赏
  • 举报
回复
你就死心吧。这个根本不可能的事情!

从抽屉原理都可以知道必然有多于一个原数字对应最后得到的数字结果,根本不可能还原。
DL_防火墙_LD 2011-02-15
  • 打赏
  • 举报
回复
将一个6或8位(0-9)数字编码,通过一个算法,变成长度只有4位左右的新数字串,要求可以还原
iambic 2011-02-15
  • 打赏
  • 举报
回复
变为长度为4的字符串当然没问题,数字字符串就不行了。
ChDw 2011-02-15
  • 打赏
  • 举报
回复
这个当然是不可能,因为 长度最长6到8位,最短1位的数字。就考虑6位吧。这样的数字已经有1百万种可能

但是4位数只能有1万种可能。也就是起码有100个数字压缩后需要使用同一个结果才可以得到这样的压缩



这种东西稍稍想一下就知道根本不可能。
sjlzcj 2011-02-15
  • 打赏
  • 举报
回复
就拿 4位来说 如果用 4进制 递归 并且 记录递归次数呢 也就是说 第一次 转换4进制 之后是个6位数 那就把这6位数字当做 一个 10进制的6位 再转四进制 知道 是 四位为止 记录递归次数 用来 还原是转换10进制的次数
开发无难事 2011-02-15
  • 打赏
  • 举报
回复
LZ 想搞一个可还原的加密算法呀,真是人才。。。。
XinSzeto 2011-02-15
  • 打赏
  • 举报
回复
如果你觉得十六进制不够的话。 可以改为 20 进制、
XinSzeto 2011-02-15
  • 打赏
  • 举报
回复
如果你想组成的字符串还是用 纯数字组成的话, 那就根本无法完成的。

参照 十六进制 与 十进制的对比。
sjlzcj 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sjlzcj 的回复:]

ls的 仅仅是数字的 字符串 很明显用 四进制 有什么不可能的
[/Quote]

貌似我想的简单了 仅仅 4进制的 话 只支持到 3333 也就是 255 唉
sjlzcj 2011-02-15
  • 打赏
  • 举报
回复
ls的 仅仅是数字的 字符串 很明显用 四进制 有什么不可能的
  • 打赏
  • 举报
回复
那是不可能的!
sjlzcj 2011-02-15
  • 打赏
  • 举报
回复
4进制。。。。。
DL_防火墙_LD 2011-02-15
  • 打赏
  • 举报
回复
例如:“20110101”经过处理,变成“1064”; 或者“3654213”变成“1064”等。也可以借助数据库。有思路吗?
龙四 2011-02-15
  • 打赏
  • 举报
回复
难,99999999个数字你现在要用9999个东西来表现,怎么也没有一一映射的关系
zn85600301 2011-02-15
  • 打赏
  • 举报
回复
嘛意思? 举个例子

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧