【问题标题】:How to generate a file with all possible 12 character letter/number combinations?如何生成包含所有可能的 12 个字符字母/数字组合的文件?
【发布时间】:2012-12-03 21:35:44
【问题描述】:

我已经为此苦苦挣扎了一段时间,我什至不知道从哪里开始。 我正在尝试创建一个会生成大量随机数的程序(我可以称它们为连续剧)。 限制将来自英文大写字母的字母 A-Z 和 0-9 的数字。

此页面上的网站应用程序http://www.random.org/strings/

但是

我希望它创建字母和数字的“所有”组合,不完全相同,并将它们保存到文本文件中。我认为大约有 200k+ 组合。

它们将是 12 个字符。示例:

  • T9T1P63WBYYZ
  • SCI1V7SAV9F5
  • 5OLN7UQS7MIE

如果可能的话,我想用 C# 创建它,但我什至不知道应该从哪里开始。 我正在浏览谷歌和类似项目大约一周,我需要它作为大学项目。 如果有人能帮助我,我会很高兴。

【问题讨论】:

  • 12 个字符的字符串会给你 36^12 个可能的组合,而不是 2^6 个。其中(假设我们每个字符有 2 个字节)将产生大约 1050 亿 TB 的文件
  • 您需要一次性使用它吗?这意味着您以后不必尝试重现该数字?另外-是否必须通过验证以确保“序列号”有效?你看过 GUID 类吗?
  • ... 假设您每秒可以生成 1 百万 个元素,将需要 150 数千 年。
  • 只考虑数字,而不是字母。小于一定长度的数字的所有可能组合很容易计算:由数字组成的十二个字符的字符串的数量是 1000000000000 - 十二个零。你用什么逻辑计算有 200000 个这样的字符串?

标签: c# generator letters-and-numbers


【解决方案1】:

呵呵..如果你有时间!

昨天问,在这里看到 L.B 的一个很好的解决方案:

How to get all the possible 3 letter permutations?

他的简单解决方案,只是改变字母表:

var alphabet = "abcdefghijklmnopqrstuvwxyz1234567890";

var query = from a in alphabet
            from b in alphabet
            from c in alphabet
            from d in alphabet
            from e in alphabet
            from f in alphabet
            from g in alphabet
            from h in alphabet
            from i in alphabet
            from j in alphabet
            from k in alphabet
            from l in alphabet

            select "" + a + b + c + d + e + f + g + h + i + j + k + l;

foreach (var item in query)
{
    Console.WriteLine(item);
}

更高级的答案可能是CartesianProduct

【讨论】:

  • -1。这不会生成 66337338736502636544 字节的文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 2022-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多