当前位置: 首页 > 面试题库 >

如何以数学方法缩短网址

南宫嘉
2023-03-14
问题内容

我正在研究使用一种算法来缩短/加密URL的可能性,该URL的长度从150到250个字符到最大12个字符。最初,我怀疑是否有可能,但我想利用StackOverflow的出色思想:)

该算法应该是可以用经典的asp,sql,c#,vb或foxpro或其他语言编写的算法。

如果没有以数据库为中心的方法,那是否有可能?

我在这里阅读的内容是,CFB模式下的AES将执行流密码,并且输出长度将与输入长度相同。有什么办法可以缩短它吗?


问题答案:

一如既往,答案是“取决于”。有一种数学理论讨论一堆数据的“信息内容”。如果您的数据最初是这样的字符串:

lleAgByD2rREjzqj85g68207NsjspdINfPRNvU9udgWw7y4qXh0EQLSy0yEi2

那么信息的内容要比您的字符串看起来要大得多:

one zero one one zero one zero zero one zero one one zero one

即使字符串实际上是相同的长度。使用压缩,可以减少表达相同含义所需的位数,但只能减少到一点。那一点取决于原始消息的信息内容。

在我看来,您的150到250个字符的字符串几乎没有信息内容,因此可以有效地压缩为12个字符。您可能必须将较长的数据存储在数据库中,并为每个数据项分配较短的“键”。

为了进一步阅读,可以从Wikipedia上有关信息论的文章开始。



 类似资料:
  • 问题内容: 我正在寻找一个PHP函数,该函数可从字符串或文件中创建短哈希,类似于那些诸如tinyurl.com之类的URL缩短网站。 哈希不得超过8个字符。 问题答案: URL缩短服务宁可使用自动递增的整数值(例如补充数据库ID),并使用Base64或其他编码对其进行编码,以使每个字符具有更多信息(64而不是仅10个数字)。

  • 这是我程序中双“m”的值(经过计算后的行星质量,这个值是专门针对地球质量的) 5.9734054370474745E24 使用System.out.println(m)打印时;输出为 5.9734054370474745E24(正确输出) 使用系统打印时。出来println(数学圆(m));输出是 9223372036854775807(输出错误) 我怎样才能缩短m的值,使其在%6s之内?比如说

  • 本文向大家介绍Asp.net MVC定义短网址的方法,包括了Asp.net MVC定义短网址的方法的使用技巧和注意事项,需要的朋友参考一下 在MVC的逻辑代码里,Controller和Action是必须的,但是在网址里,并不需要完全体现Controller和Action。比如我们经常希望看到http://localhost/About而不是http://localhost/Home/About。

  • 有没有一种方法可以让这段代码更短或更蟒蛇的方式,而不是写很多ands或ors?

  • 问题内容: 解决问题的答案(使用unshort.meAPI)是我的问题,我专注于取消youtube链接。由于unshort.me易于使用,这将返回我无法解析的验证码几乎90%的结果。 到目前为止,我仍然坚持使用: 注意:注释中的所有内容都是我在使用unshort.me服务(返回验证码链接)时尝试执行的操作。 有谁知道一种更有效的方法来完成此操作而无需使用open(因为这浪费带宽)? 问题答案: 在