首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >N次数的n次程序

N次数的n次程序
EN

Code Golf用户
提问于 2018-03-16 06:46:19
回答 6查看 1K关注 0票数 11

给定一个正整数数组A作为输入,生成一个程序,当重复k时,该程序输出数组的kth(1-索引)值。

例如,如果数组是[1,11],则输出应该是一个输出1的程序,当重复两次时,输出11。类似于Python3中的print(end="1");的代码工作:print(end="1");打印1和print(end="1");print(end="1");打印11

解决所有测试用例的最小代码长度之和获胜。您的元代码应该在60年代解决500个测试用例,每个解决方案代码应该在10秒内返回。元代码和解决方案代码不必使用同一种语言,但是您的元程序生成的所有解决方案都应该使用同一种语言。

预测试数据和生成器可以看到这里。7天后,将使用提交时间之和(例如12:34均值1234)作为随机种子,并生成另一个测试用例作为最终测试用例。

在GMT+8中,最终的种子是7335,所以最终的测试数据是这里

EN

回答 6

Code Golf用户

发布于 2018-03-16 08:43:14

05AB1E,生成05AB1E

代码语言:javascript
复制
¸»“"ÿ"#.g<“ƵƒçJ

在网上试试!

为输入[5,17,7,13,2]生成的程序是"5 17 7 13 2"#.g<è

[5,17,7,13,2]

生成程序的长度为len(input) + 5

票数 3
EN

Code Golf用户

发布于 2018-03-16 08:57:42

Dyalog Unicode

匿名前缀lambda。返回程序体。

代码语言:javascript
复制
 {
     1=≢⍵:⍕⍵ ⍝ single element

     (2=≢⍵)∧(⍵[2]=11×⍵[1]):⍕⍵[1] ⍝ 2, 22 etc.

     1=≢∪⍵:'⊢',⍕⊃⍵ ⍝ all the same

     (⊢≡⊃×⍳∘≢)⍵:'+',⍕⊃⍵ ⍝ linear

     ((⌊=⊢)!⍣¯1⊢⊃⍵)∧(1∧.=1↓⍵):'!',⍕!⍣¯1⊃⍵ ⍝ factorial followed by all 1s

     (⍵[2]∧.=1↓⍵)∧(⍵[1]=10|2⊃⍵):(⍕⊃⍵),'⌈',(⊃⍕2⊃⍵) ⍝ b ab ab ab

     e←{∊⍉2 2⍴'+×',⍕¨⍵}¨⍸(⊃⍵)=∘.×⍨⍳10
     b←⍵∘≡¨e(({0::⍬ ⋄ ⍎⍵}¨,\)⍴∘⊂)¨⍨(≢⍵)
     ∨/b:⊃b/e

     Q←{'''',⍨⍵/⍨1+''''=⍵}
     (5∧.≤⍵)∧(≢⍕⍵)>6+(+/14=⍵)+≢⍵:'{⍺←⎕AV⍳⊃⋄1⌽⍺⊢⍵}''',Q ⎕AV[⍵] ⍝ string fallback

     (≢⍕⍵)>9+(+/5=⍵)+≢⍵:'{⍺←¯4+⎕AV⍳⊃⋄1⌽⍺⊢⍵}''',Q ⎕AV[4+⍵] ⍝ offset string fallback

     '{⍺←⊃⋄1⌽⍺⊢⍵}',⍕⍵ ⍝ fallback
 }

在网上试试!

方法

这将探索各种方法,并返回第一个可用的方法,最终返回到一个普遍适用的方法。

单元素

如果列表只有一个元素,则返回为-原样。

2、22等

一个数字可以重复产生11倍大的数字,

所有相同的

我们只返回最右边()号。

线性

f(n) = k×n序列只是在第一个项之前插入一个加号。

因子与所有1s

相接

当第一个数n=!m和后续数为1时,则!m是一个解决方案,因为!m为n,m!m为1,!1为1。

b ab ab ab

因为所有的两位数字都比所有的个位数要大,一个运行的最大值,其中第一个数字的前部粘在第二个数字的后面,是一个解决方案。

三行代码

检查+a×b类型的任何公式是否有效。

字符串回退

没有数字低于5的长序列(因为4是行中断)可以被编码为SBCS的字符。

偏移字符串回退

如果有低于5的数字,我们会向上移动9,以避免那些。

后备

字符串"{⍺←⊃⋄1⌽⍺⊢⍵}"和字符串()输入的简单字符串连接。例如,[3,1,4]返回程序体{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4

大括号中的部分是一个矛盾的函数,这意味着它既可以是前缀函数,也可以是内固定函数。因此,它的最左边的实例将以前缀模式运行,所有其他实例都将以infix模式运行。两种模式的不同之处在于,表示左参数的是否有一个值。如果没有,那么它将被分配函数 (首先)。

对回退法

的解释

{} 匿名lambda:

⍺←⊃ 如果没有左参数(),则将函数 (first)分配给

然后, :

此时,以下代码意味着两种不同的情况,取决于是数字列表(infix调用)还是函数"first“(前缀调用)。

如果是一个数字列表,则为 :

⍺⊢⍵ 放弃左论点,而赞成右论点。

1⌽ 向左旋转一步

如果是“first”函数,则为 :

⊢⍵ 提供了正确的参数

 选择了其中的第一个元素

1⌽ 旋转它一步(在标量上没有操作)

示例运行的回退方法

执行3 1 4的S代码,{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4,将“第一个”函数分配给,从而返回第一个元素:3

执行{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4让最右边的lambda“捕获”左边的3 1 4作为它的左参数,因此有一个值被丢弃,取而代之的是3 1 4,然后再向左旋转一步,生成1 4 3作为结果。然后,这被用作最左边lambda的唯一参数,其中成为“第一个”函数,导致结果成为第一个元素;1

执行{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4让最右边的lambda“捕获”中间的3 1 4作为它的左参数,然后将其丢弃为右参数,3 1 4,当旋转一步后,它就是1 4 3。然后,它被用作中间lambda的右参数,以及最左边的3 1 4作为左参数。左参数被丢弃为右侧,左转一步就会产生4 3 1。这将成为最左边lambda的唯一参数,因此成为“第一个函数”,返回第一个元素;4

评分

当需要使用实际数据进行测试时,请使用这个测试线束 (使用预测试数据进行链接)。测试用例在输入字段中,输出将是所有500个程序的总字节数。(它也会抛出一个错误,但这只是因为它后来尝试按原样计算输入。)

票数 3
EN

Code Golf用户

发布于 2018-03-16 09:54:10

木炭

代码语言:javascript
复制
´⎚´§´⪪⪫IA ”y¦ Lυ⊞υω

在网上试试!链接是详细的代码版本。解释:

代码语言:javascript
复制
´⎚´§´⪪

输出文字字符串⎚§⪪

代码语言:javascript
复制
⪫IA 

将输入数组强制转换为string、使用空格联接并打印。

代码语言:javascript
复制
”y¦ Lυ⊞υω

输出文字字符串¦ Lυ⊞υω

例如,5,17,7,13,2的输出是⎚§⪪5 17 7 13 2¦ Lυ⊞υω在网上试试!解释:

代码语言:javascript
复制

清除画布,以便只有最后一个输出可见。

代码语言:javascript
复制
§⪪5 17 7 13 2¦ Lυ

取预定义列表u的长度。使用它可以索引到已在空格上拆分的整数列表中,并输出所选元素。

代码语言:javascript
复制
⊞υω

将一个虚拟变量推送到预定义的列表u,以便下一个副本将输出列表的下一个元素。

总输出长度=(所有列表中所有整数的长度)+(所有列表中的整数数)+(列表* 9)字符数(SBCS)。

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

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

复制
相关文章

相似问题

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