找回密码
 欢迎注册
查看: 8851|回复: 3

[讨论] 【哈希算法】如何将一个整数集合与另个一整数集合间的元素用一个初等数学函数对应起来

[复制链接]
发表于 2011-3-9 08:11:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
从标题看这属于哈希算法,我对仅仅了解;

现在我想把它作为一个纯数学问题讨论下:

比如,随机给出两组数据A,B
A组数据为500个随机整数(各不相同)
B组数据也为500个随机整数(各不相同)

问题,求一个初等数学函数f,使得它:
对任意的 x∈A,ヨ唯一的y∈B,使得f(x)=y;

============================

现在我把它抽象为一个数学问题:

定义1 初等运算(我自己定的):
对一个或者两个整数可以用有限的 +,*,/,%(算术运算),&,|,^,!(计算机里面的几个逻辑运算),以及有限次的复合所做的运算,我们称它为初等运算。

如x & (x/7) % x + !x (x为整数)就是一个对x做初等运算的操作
定义2 初等映射
用初等运算建立起来的映射,称为初等映射;

那么,我要问,从理论上能否证明存在一个算法:
对于任意的集合A,B(A,B元素个数相等),可以找到一个初等映射f,可以在他们的元素之间建立一个双射,即f(A)=B;
倘若能  ——给出这个算法;在满足要求的映射f中,如何找到运算量尽量少的映射f?
倘若不能——给出当A,B两个集合的元素在何种情况下,不能建立初等双射?
            如果允许从A,B集合中去除尽量少的元素后,能不能建立初等双射?
                       能的话,这个“尽量少的元素”最少是多少? 与A,B集合有什么关系?
==============================================
随便给出两组数据:
2    3     9      11      19     20     27      30      31      32      47      54      55     56    57     69
-8   5    7       8        o      23      67      -2       87      100     44      31      9      13   34    19

大家可以试试找一下他们之间的初等映射;
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-3-9 08:16:39 | 显示全部楼层
说明一下,假定计算机逻辑运算&,|,^,!的操作数是在32位字长的机器下进行;
(大家可以打开命令提示符,用   set/a "数字&数字"    试验)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-3-14 09:57:12 | 显示全部楼层
f(Ai)=Bi
令f(x)=a*x^499+b*x^498+...,列方程组求解
不过在32位字长里能不能算是个问题...
话说计算机里直接用下标对应了,谁还管那个值是多少...
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-3-14 11:13:37 | 显示全部楼层
3# 仙剑魔

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-28 03:40 , Processed in 0.050845 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表