0

这是 jsbin 生成每个 bin 的标识短代码的函数:

function shortcode() {
    var vowels = 'aeiou',
        consonants = 'bcdfghjklmnpqrstvwxyz',
        word = '', length = 6, index = 0, set;

    for (; index < length; index += 1) {
        set = (index % 2 === 0) ? vowels : consonants;
        word += set[Math.floor(Math.random() * set.length)];
    }

    return word;
}

它可以产生多少种不同的组合?如果我计算得好,当使用一组 26 个字母(az)中的 6 个字母时,有 3.08915776e+8 个组合。但是这将如何计算,因为有 5 组(元音)和 21 组(辅音)交替产生可记忆的短代码,如“ecamit”、“izafij”、“erwih”、“avimog”等......

那会是 (5x21)^3 = 121,550,625 吗?

4

1 回答 1

1

短代码方法最近更新了,因为我们经常重复重复,实际上您看到的代码版本还在末尾附加了数字以增加强制它们变得唯一。

相信仅基于此代码(上面的代码,而不是 jsbin 生产代码库中的代码)的变体数量是:1,157,625(5 * 21 * 5 * 21 * 5 * 21) - 这真的不多。

简单的方法来自我的旧密码生成器:http : //remysharp.com/2008/04/14/pronounceablely-random/ - 但最近我不得不在 jsbin 的生产中更改它。

现在,它不断在数据库中的每个正面命中添加字符,而且字母以大写形式重复,因此现在 url 组合的范围要高得多。

于 2013-09-01T11:11:38.390 回答