|
|
1
28
|
|
2
38
YouTube使用 比较基准64 编码为每个视频生成ID。生成ID所涉及的字符包括
对地球上的每个人来说,在18000年的时间里每分钟制作一次视频就足够了。 他们只使用11个字符(64*64*64*64*64*64*64*64*64*64*64)就获得了如此巨大的数字,如果他们需要更多的ID,他们只需要在ID中再添加1个字符。
请参阅此 video 详细解释。 |
|
|
3
11
没有必要使用散列。它可能只是一个准随机的64位值,通过base64或其他等效值传递。 所谓准随机,我的意思是,它只是一对一的整数映射,只是洗牌。
普通base64会在末尾加一个equals,但在本例中,它是隐含的,因为大小是已知的。字符映射很容易成为标准之外的东西。 |
|
|
4
4
PHP示例:
遗憾的是,PHP最多只支持36进制(数字+字母)。基62支持大写和小写字母。
|
|
|
5
3
您可以生成一个GUID并将其作为视频的ID。 guid不太可能发生碰撞。 |
|
|
6
3
最好的办法可能是简单地生成随机字符串,并跟踪(例如在DB中)已经使用的字符串,这样就不会重复。这是非常容易实现的,如果正确实现,它不会失败(没有重复的,等等)。 |
|
|
7
3
您可以使用任何库或一些语言,如python在标准库中提供的库。 例子:
|
|
|
8
1
|
|
|
9
1
我建议使用一个完美的散列函数: Perfect Hash Function for Human Readable Order Codes 如接受的答案所示,取一个数,然后对该数应用一系列“双射”(或可逆)运算以得到散列数。 输入的数字应该按顺序:0、1、2、3,依此类推。 |
|
|
10
0
通常情况下,您会以看起来不是数字的形式隐藏数字标识符。一种简单的方法是用base-36编码数字。您应该能够使用所选语言中的一个或另一个itoa()变体来实现这一点。 |
|
|
11
0
只需选择随机值,直到你有一个从未见过的。
在预期时间内随机选取并耗尽所有值形成一组运行
在你的情况下,你不会用尽设置,所以你应该得到恒定的时间选择。只需使用一个快速的数据结构来进行重复查找。 |
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 10 月前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 10 月前 |
|
|
Pengcheng · 这个简单的递归函数的输出是什么?你能详细解释一下吗? 11 月前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |