相关疑难解决方法(0)

有限集中的朴素随机选择的O值是多少?

关于从有限集中获取随机值的这个问题让我思考......

人们想要从一组Y值中检索X个唯一值是相当普遍的.例如,我可能想从一副牌中交出一手牌.我想要5张牌,我希望它们都是独一无二的.

现在,我可以天真地做到这一点,通过挑选一张随机卡5次,每次重复时再试一次,直到我得到5张牌.然而,对于大型集合中的大量值,这并不是那么好.例如,如果我想从一组1,000,000中获得999,999个值,则此方法会变得非常糟糕.

问题是:有多糟糕?我正在找人解释一个O()值.获得第x个数字将需要y次尝试...但有多少?我知道如何解决任何给定的值,但是有一种直接的方法可以推广整个系列并得到一个O()值吗?

(问题不是:"我怎样才能改进这个?"因为它相对容易修复,而且我确信它在其他地方已被多次覆盖.)

random math big-o probability

12
推荐指数
1
解决办法
1774
查看次数

youtube如何计算每个视频的唯一11位数代码

Youtube似乎每个视频都有一个独特的11位数代码.代码包括1-9,A-Z,a-z,和一些符号等+_*.

他们如何计算每个视频的唯一代码?我正在做一些我想为每条记录分配一个唯一代码的东西,因此问题就在于此.

我的问题/疑虑是:

  1. 如果他们在运行中(当提交视频时),那么他们必须检查为视频准备的代码是否已经存在?对于像他们这样的巨大数据集来说,这将是一项昂贵的操作.
  2. 他们会在每晚或每个月运行批处理作业,创建唯一代码并将其存储在数据库中.然后,当提交视频时,它只需要一个代码并将其标记为"已使用"
  3. ID为数据库中的每条记录采用自动生成和自动递增的列是否有意义,然后以某种方式将该唯一ID列转换为11位数代码?

我的目标是:

  • 为表中的记录创建唯一代码.
  • 用户可以与任何人共享具有该唯一代码的URL.
  • 当有人通过唯一代码进来时.然后他们的"进入"与使用唯一代码共享网址的原始用户绑定.

java youtube algorithm

7
推荐指数
1
解决办法
1363
查看次数

人类可读订单代码的完美哈希函数

我正在尝试生成非顺序的人类可读订单代码,这些订单代码派生自(比方说)一个从1开始的无符号32位内部id,并为每个新订单自动递增.

在我下面的示例代码中,每个$hash都是唯一的吗?(我计划对其进行base34编码$hash,使其具有人类可读性.)

<?php
function int_hash($key) {
  $key = ($key^0x47cb8a8c) ^ ($key<<12);
  $key = ($key^0x61a988bc) ^ ($key>>19);
  $key = ($key^0x78d2a3c8) ^ ($key<<5);
  $key = ($key^0x5972b1be) ^ ($key<<9);
  $key = ($key^0x2ea72dfe) ^ ($key<<3);
  $key = ($key^0x5ff1057d) ^ ($key>>16);
  return $key;
}

for($order_id = 1; $order_id <= PHP_INT_MAX; ++$order_id) {
  $hash = int_hash($order_id);
}
?>
Run Code Online (Sandbox Code Playgroud)

如果没有,有没有关于如何更换的建议int_hash

结果说,base34编码a md5($order_id)对我来说太长了.

php hash encoding

1
推荐指数
1
解决办法
2975
查看次数

标签 统计

algorithm ×1

big-o ×1

encoding ×1

hash ×1

java ×1

math ×1

php ×1

probability ×1

random ×1

youtube ×1