我有一个属性为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个字符长的令牌是否还有任何令牌变体?
答案 0 :(得分:2)
这将是:
64**n - Post.count(:token).where('char_length(token) = ?', n)
第一部分给出了可能的组合数,第二部分给出了令牌长度为n的记录数。
但请不要忘记,您的随机生成器不一定会产生剩余的可能组合。随着时间的推移会出现越来越多的冲突,因此我强烈反对这种实施。
注意:char_length
语句是MySQL特定的,因此根据您的RDBMS,您必须调整此部分。