如何从一些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位的数字了。
[解决办法]