检查是否有任何特定字符长度的唯一令牌

时间:2016-06-15 11:23:34

标签: ruby-on-rails ruby ruby-on-rails-5 ruby-2.3

我有一个属性为library(data.table) library(magrittr) dt <- data.table(x = 1:5, y = 5:1) # original expression dt %T>% {z1 <<- .[x > 2, sum(y)]} # x y # 1: 1 5 # 2: 2 4 # 3: 3 3 # 4: 4 2 # 5: 5 1 z1 # [1] 6 # equivalently z2 <- dt[x > 2, sum(y)]; dt # x y # 1: 1 5 # 2: 2 4 # 3: 3 3 # 4: 4 2 # 5: 5 1 # more verbosely z3 <- sum(subset(dt, x > 2)$y); dt # x y # 1: 1 5 # 2: 2 4 # 3: 3 3 # 4: 4 2 # 5: 5 1 all.equal(z1, z2, z3) # [1] TRUE 的帖子模型。

我正在使用token来创建令牌。

令牌不需要是不可取的,但必须是唯一的。

我从1个字符长的标记开始,当它们全部用完(所有64个组合)时,我应该继续使用2个字符长的标记。

如何查看3个字符长的令牌是否还有任何令牌变体?

1 个答案:

答案 0 :(得分:2)

这将是:

64**n - Post.count(:token).where('char_length(token) = ?', n)

第一部分给出了可能的组合数,第二部分给出了令牌长度为n的记录数。

但请不要忘记,您的随机生成器不一定会产生剩余的可能组合。随着时间的推移会出现越来越多的冲突,因此我强烈反对这种实施。

注意:char_length语句是MySQL特定的,因此根据您的RDBMS,您必须调整此部分。