Code Golf:格雷码
挑战
输出n位格雷码的字符数最短的程序。
n
将是一个小于1000
100000
的任意数字(由于用户建议),它取自标准输入。格雷码将以标准输出打印,如示例中所示。
注意:我不希望程序在合理的时间内打印格雷码(n=100000
是过度杀伤);我确实希望它开始打印。
例
输入:
4
预期产出:
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
没有找到相关结果
已邀请:
17 个回复
糖固傻染
这个54 char版本克服了Python2中范围的限制,因此n = 100000可以工作!
69个字符
75个字符
珊畴炮贩号
是'rotate'char)
这产生了5位数的格雷码(
现在是'rho'字符)
数字'5'可以改变或是变量。 (抱歉,不可打印的APL字符。所以不允许我以新用户的身份发布图片)
珊畴炮贩号
测试运行:
(实际上我不知道是否允许使用个人语言,因为Impossible!仍在开发中,但无论如何我想发布它。)
呢率篓舍烫
样品运行
吞睫素
这适用于n = 100000,没有问题
靛取糕奖穿
锑寝粒
获胜的无点风格! (或至少减少4次击球)。感谢FUZxxl。 上一个:86个字符:
用相互作用剪切两个笔画,一个用unlines剪辑。 年龄:89个字符:
请注意,懒惰可以免费为您提供即时输出。
嘘崇蔡对
感谢A. Rex的建议! 以前的尝试 这是我在Mathematica(140个字符)中的尝试。我知道它不是最短的,但我认为如果你熟悉函数式编程,这是最容易理解的(虽然这可能是我的语言偏见)。 addbit函数采用n位格雷码并使用维基百科页面中的逻辑返回n + 1位格雷码.make格雷码函数以嵌套方式将addbit函数应用于1位格雷码{{{ 0},{1}},直到创建n位版本。字符代码功能只打印数字,而不显示addbit函数输出中的大括号和逗号。
铰齐插
(233个字符) 测试:
凰葱崎济邯
矾醒忻
可读版本:
戒黑恳农
(177 char) 或者扩展版本:
蜗仓馈
炉挤仙挟
在那之后我创建了一个“100000”要求的工作版本 - 它太长了,不能与这里显示的其他解决方案竞争,我可能已经多次重新发明了轮子,但不像我在这里看到的许多解决方案这将是一个非常非常大量的比特,嘿,对于F#noob来说这是一个很好的学习经验 - 我没有费心缩短它,因为它反正太长了;-) 迭代解决方案:(使用100000+)
琳娘
Lua 5.2:154字节
玩翁文醚碱
疏腔傻小雹