stl 哈希U8国际 U8国际官方网站 体育APP下载函数
栏目:U8体育 发布时间:2025-06-25
  u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口   其实,从整体上考虑,假设unsigned long只有4个字节,32比特。那么它就只能表示2^32这么多个不同的数。接着考虑字符串 ,

  u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口

stl 哈希U8国际 U8国际官方网站 U8体育APP下载函数

  其实,从整体上考虑,假设unsigned long只有4个字节,32比特。那么它就只能表示2^32这么多个不同的数。接着考虑字符串 ,假设字符串里的字符都是小写的英文字符,那么每个字符有a~z 26种选择。32个字符组成的字符串,就有26^32种,明显字符串的数目多于 unsigned long能表示的数目。那么肯定存在多个不同字符串算出来的整型hash值相同。 为了研究这个复杂的问题,科学家对很多的字符串进行测试,希望找到一个hash函数,让每个整 ...

  其实,从整体上考虑,假设unsigned long只有4个字节,32比特。那么它就只能表示2^32这么多个不同的数。接着考虑字符串 ,假设字符串里的字符都是小写的英文字符,那么每个字符有a~z26种选择。32个字符组成的字符串,就有26^32种,明显字符串的数目多于 unsigned long能表示的数目。那么肯定存在多个不同字符串算出来的整型hash值相同。

  为了研究这个复杂的问题,科学家对很多的字符串进行测试,希望找到一个hash函数,让每个整数代表的字符串数目尽量一样(比如:10能表示100个不同的字符串。20也差不多能表示100个不同的字符串),这样当你需要反过来将整数恢复成字符串的时候,就只需要遍历这100个字符串,哪怕运气再差也只要遍历100次就能找到你要的字符串。

  这里的用5的原因涉及到复杂的统计学原理,但是有个结论,就是,这里用较小的素数都是可以的,比如不用5,用7,也差不多;但是用4,就很不好。如果LZ想 具体研究,可以搜索下“哈希函数”,有很多的 论文都在讨论这个问题,这也从一个侧面说明了这个问题并没有被完美的解决。