首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

怎么从一些15位的不重复的数,根据算法转为8位的不重复的数

2012-08-27 
如何从一些15位的不重复的数,根据算法转为8位的不重复的数如题,如何从一些15位的不重复的数,根据算法转为8

如何从一些15位的不重复的数,根据算法转为8位的不重复的数
如题,如何从一些15位的不重复的数,根据算法转为8位的不重复的数。
即有一些数字,都为15位长度,均唯一不重复,如何根据特定算法来转为8位的不重复的数?

只能发100分,不够可以继续开帖子加。

[解决办法]
2^15 转成 2^8个数还不重复?
不可能。
[解决办法]
首先8位不可能容的下15位数,所以这种要求无解!
[解决办法]
如楼上2位所说,要不问题描述不清
[解决办法]
如果15位的不重复数字的个数小于 2^8,可以先用hash_set存下,存下来的数字hash_set会帮我们排序。第一位映射成数字0,第二位映射成1,以此类推...
[解决办法]
转换为8位不重复的字符串还差不多。转换为8位的数字肯定是有冲突的!
[解决办法]
这么说吧,15位是你的输入范围,8位是你的输出范围
还要看你的问题规模N,如果N大于2^8,那你别想了,不可能的,否则才可能有解
[解决办法]
定义两类整数,在1~2^31和1~2^63之间,分别对应于8位和15位数字。
将15位数字除以2^31即可。当然直接使用位运算更好。
是不是有重复,那就得看都有哪些15位的数字了。
[解决办法]

探讨

2个byte相加合并为1个byte吧

[解决办法]
一定还有别的限制条件吧?要不然的话,就用随机数随便转呗。
比如你有三个15位的数。第一个数不用管,随机生成一个八位的。对后面每个待转换的15位的数,用随机数生成一个和前面已有的八位数不重复的,就行了。

热点排行