算法-在一个可以认为是无限大的空间里,存在若干值,如果快速地找到一个不存在的值

发布于 2016-11-11 15:34:24 字数 235 浏览 1241 评论 1

最近想自己做一个短URL系统,希望既可以手动指定生成的链接,也可自动生成,生成最好是随机的。

问题是,如何随机生成这个文本?得与不论是手动指定的还是以前自动生成的不冲突。

我能想到的办法就是随机产生一个,然后查询数据库,如果发现重复则从当前结果加1,再查询,直到查不到时为止。如果不幸遇到了一大片连续的值,岂不很没效率。

希望得到一个通用的解决算法,姑且称作“增量式随机生成不重复值”

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

虐人心 2017-03-28 20:00:38

我说说我的想法:
1. 短网址的链接生成方法,网上一大片, 我就不说了, 我感觉你可能把随机生成想的太复杂了, 这个随机其实是和原始链接有关系的, 是以原始链接作为种子来经过算法生成的, 所以说你这个重复一般是可以避免的, 而不是你说的加1, 如果你单纯的对每次请求加1,且解决自定义问题的前提下,那么这个结果肯定是没有的, 就更不会出现重复的现象
2. 至于你说的可以自定义, 我能想到的就是规定一下长度, 这个长度只用来指定地址用的, 和随机生成使用不同的长度

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文