language-agnostic - Code Golf : Morris Sequence

标签 language-agnostic code-golf rosetta-stone

挑战

按字符数计算的最短代码将输出 Morris Number Sequence莫里斯数列,也称为看即说序列,是一个数字序列,开头如下:

1, 11, 21, 1211, 111221, 312211, ...

您可以无限地生成序列(即,您不必生成特定的数字)。

I/O 预期

该程序不需要接受任何输入(但是接受输入会获得奖励积分,从而提供从任意起点或数字开始的选项)。至少你的程序必须从 1 开始。

输出至少应为以下序列:

1
11
21
1211
111221
312211
...

额外积分

如果您想要获得额外的学分,您需要执行以下操作:

$ morris 1
1
11
21
1211
111221
312211
...

$ morris 3
3
13
1113
3113
132113
...

最佳答案

GolfScript - 41(额外学分:40)

1{.p`n+0:c:P;{:|P=c{c`P|:P!}if):c;}%~1}do
{~.p`n+0:c:P;{:|P=c{c`P|:P!}if):c;}%1}do

什么?
获取序列中下一个数字的过程:将当前数字转换为字符串,附加换行符并循环遍历字符。对于每个数字,如果前一个数字 P 相同,则递增计数器 c。否则,将 cP 添加到下一个数字中,然后更新这些变量。我们附加的换行符允许将最后一组数字添加到下一个数字。

确切的细节可以通过查看 GolfScript 文档获得。 (请注意,| 用作变量。)

关于language-agnostic - Code Golf : Morris Sequence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3908513/

相关文章:

language-agnostic - 哪个是更好的长期 URL 设计?

language-agnostic - Code Golf : Number to Words

php - 简单的 PHP 表单 : Attachment to email (code golf)

computer-science - 创建最短的图灵完备解释器

code-golf - Code Golf : Leibniz formula for Pi

language-agnostic - Code Golf : Pig Latin

解析源代码 - 不同语言的唯一标识符?

perl - 从 DAG 中提取树

algorithm - 伪随机数生成器 - 指数分布

puzzle - 高尔夫代码:自动机