2012-12-16 48 views
0

我一直在为此奋斗一段时间,我甚至无法弄清楚从哪里开始。 我想创建一个程序,它会产生大量的随机(我可以称它们为连续剧)。 限制将来自英文大写字母的字母A-Z和来自0-9的数字。如何生成一个包含所有可能的12个字母/数字组合的文件?

喜欢的东西的网站的应用程序在本页面http://www.random.org/strings/

我想它创建的字母和数字“所有”的组合,没有相同的,并保存到文本文件。我认为大约有20万个组合。

他们将是12个字符。例如:

  • T9T1P63WBYYZ
  • SCI1V7SAV9F5
  • 5OLN7UQS7MIE

我想在C#创建它,如果它是可能的,但我不知道我应该在哪里甚至开始。 我正在浏览谷歌和类似项目一周左右,我需要它作为大学项目。 如果有人愿意帮助,我会很开心。

+2

12个字符的字符串会给你36^12个可能的c组合,而不是2^6。哪个(假设我们每个字符有2个字节)将产生大约1050亿兆字节的文件 –

+1

你需要一代吗?这意味着你不必在以后重试该号码?另外 - 是否必须通过验证以确保“串行”有效?你看过GUID类吗? – tsells

+4

......假设你可以每秒产生* 1千万*个元素,将花费数千年* 150年。 –

回答

4

呵呵..如果你有时间的话!

问昨天,由LB在这里看到一个很好的解决方案:

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

+0

-1。 THat不生成66337338736502636544字节的文件。 – TomTom

相关问题