首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序序列发生器

程序序列发生器
EN

Code Golf用户
提问于 2018-02-02 19:36:10
回答 1查看 312关注 0票数 4

您的挑战是用您选择的语言实现循环程序序列生成器(PSG)。

给定一种语言,L,L中的PSG是一个在L中输出PSG的程序,PSG的一些性质如下:

  • 在L中重复执行PSG会在L中生成一系列程序。
  • 如果PSG生成的序列是循环的,那么PSG就是循环的。
  • 循环PSG,P的周期是T(P),是它生成的序列中循环的周期。非循环PSG的周期也是一样的,是无限的.

PSG的一个微不足道的例子是quine;任何quine都是周期为1的循环PSG。

为了使这个挑战有趣,你的PSG的时间必须至少是5。

得分与典型的代码高尔夫有点不同。非正式地说,你的分数是由PSG生成的序列的一个周期中所有程序的长度之和,除以PSG的周期。形式上:设P为PSG,pₙ为PSG序列中的n_th项,_l( pₙ)为pₙ的字节长度。那么你的分数是:

对于非循环PSG,由于l(pₙ)作为n到无穷远的极限是无穷大,那么任何非循环PSG的得分都会发散到无穷大。

得分最低的PSG赢得

EN

回答 1

Code Golf用户

发布于 2018-03-09 17:48:31

帕里/GP,38分

代码语言:javascript
复制
(f=(x)->print1("(f="f")("x++%5")"))(0)

周期是5。

在网上试试!

票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/154688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档