首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有挑战性的数学有关问题

2012-03-25 
有挑战性的数学问题A集合中的数都是16位的16进制数且互不相同,即每一个数据具有唯一性,B集合中的数同样是1

有挑战性的数学问题
A集合中的数都是16位的16进制数且互不相同,即每一个数据具有唯一性,B集合中的数同样是16位的16进制数且互不相同;现在要求A集合的某一数和B集合通过什么的运算得到一个小于等于16位的数(无论什么数据,只要是可见字符就行)放在C集合中,要保证C集合中的数也是唯一的。 简单的讲就是,两个唯一的16位数如何才能得到另外一个唯一的数。请高手解答,谢谢!

[解决办法]
2个16位的数,减、或除就能得到一个不超过16位的数。
2组数的话,你确定能有解?
[解决办法]

探讨
不是两组数,是两个分别取自A集合和B集合的数运算后放在C集合中,要使C集合中的数相同的概率尽可能的小

[解决办法]
16bit + 16bit => 16bit

必定存在碰撞
[解决办法]
c=md5(a+b)
[解决办法]
至少32位才能保证唯一(有序的话)。。这个还用证吗
[解决办法]
有限集的话:
A和B笛卡尔积为D;
对D的每个元素生成唯一16位的映射放入C中;
然后每次运算都去查表....
[解决办法]
C的意义何在,问题都是要有意义的,如果没有意义那么很简单。
随便写一个c = ( a/a + b ) % 2^16。
也就是说c中的每个元素为b + 1.如果大于16位则等于0,其他的不变
或者加多少都行只要是1个固定数,或者用a加一个固定数也成。
但这样好像没什么意义。a,b只用了一个。。
但是根据题目要求,这样是合法的。。

热点排行