上帝的90亿个名字是Arthur C. Clarke的短篇小说。这是关于一群藏族僧侣的,他们的命题是写下所有可能的神的名字,并用自己的字母写下。从本质上讲,他们致力于编写受某些规则限制的字母的所有可能排列。在故事中,修道院聘请了一些工程师编写程序来为他们完成所有工作。您的目标是编写该程序。
规则:
和尚的字母使用13个字符(根据我的估计)。您可以使用
ABCDEFGHIJKLM
或其他一组13个字符。可能名称的最小长度为1个字符。最大长度为9个字符。
角色连续重复的次数不得超过3次。
AAABA
是有效名称,但AAAAB
不是。你的程序应该从顺序打印出来(到文件)每一个可能的名字
A
来MMMLMMMLM
为任意字符,也有字母分开(换行符,分号,等等)。这是代码高尔夫球,您可以使用任何语言。2014年6月1日之前最短的解决方案将获胜。
编辑:名称应以开头A
和结尾MMMLMMMLM
,依次遍历所有数十亿个名称。但是具体的顺序由您决定。您可以先打印所有1个字母的名称,然后打印所有2个字母的名称,等等。或者您可以打印所有以开头的名称A
,然后打印以开头的所有名称B
,或其他模式。但是,假设他们有时间,人应该应该能够通读文件并确认文件全部存在,并以您选择的任何逻辑顺序进行确认。
f(k) = k^9 + k^8 + k^7 - 5*k^6 + k^5 + k^4 + 4*k^3 - 2*k^2 + k
。贤者实现:goo.gl/0srwhq
105.8GB
所有人都说完了!我很高兴星星没有熄灭...或者您可能必须打印出要完成的列表...?