多种语言的Anagrams警察的线程


44

这个挑战有两个线程。这是警察的话题。强盗的线程位于此处

您的挑战是选择一个OEIS序列,并用两种不同的语言编写两个完整的程序,当通过STDIN或其他形式的标准输入(其中n为任何正数)给定n时,该序列将生成序列中的第n个项目。但是,您的两个程序必须是字谜,这意味着每个程序都可以从对方的字母重新排列。

程序必须将数字的小数点后跟可选的空白输出到STDOUT。程序可以输出到STDERR,但是应该忽略它,如果隐藏的情况如此,则必须明确指出是这种情况。

如果愿意,也可以按字符代码输出。但是,如果您在隐藏的解决方案中这样做,则必须在提交的正文中注明。

然后,您将显示OEIS编号,其源代码以及它所使用的一种语言的名称。

如果抢劫犯找到了以您已经提出的语言以外的其他语言运行的原始提交的字谜,则盗贼会破解您的提交。要破解答案,他们必须只找到能产生顺序且是原文的字谜的任何语言和程序,而不一定是您正在考虑的答案。

因此,您会受到激励,使他们尽可能难于使用其符号列表来查找完成任务的任何语言。

计分

这是所以最短的,完整的程序是赢家。

语言能力

如果两种建议的解决方案都不能用两种语言完成任务,则将认为语言是不同的。只要警察的解决方案或强盗的解决方案都不能使用另一种语言输出正确的语言,这将包括同一语言的不同版本。

即,如果有两个解决方案1和2分别使用语言A和B,则解决方案2不能使用语言A产生正确的输出,解决方案1不能使用语言B产生正确的输出。

安全

一旦您的提交被破解了一个星期,您可以发布解决方案并声明您的发布安全。如果一周后您选择不发布解决方案,您的答案可能仍会被破解。


4
要浏览随机的OEIS序列以获取构想,请访问oeis.org/webcam
mbomb007

它如何与喜欢对解释器使用标志的语言(例如perl)一起使用?他们被取消资格吗?标记算作代码的一部分吗?标志是否“免费”(不包含在代码中或完全泄漏)?
Emigna '16

隐藏的程序是否可以错误退出(生成输出后)?应该在答案中指出吗?
路易斯·门多

1
不知道这对其他人是否有帮助,但是会突出显示任何剩余的丢失字符或重复的字符:codepen.io/anon/pen/BQjxRK
Dom Hastings

1
如果有一个堆栈摘要显示最完整的答案(最早的一个),那就太好了。
mbomb007 '16

Answers:


15

Python 2,118 字节,A042545破解

i=input();s=1/(801**.5-28);a=[0,1]
for p in range(i):a+=[a[-2]+a[-1]*int(s)];s=1/(s-int(s))
print a[i]#,,,.//000fhlmo|

我不想实现一个琐碎的序列,所以我决定使用我的PPCG用户ID。我先用另一种语言写了这本书,它应该给您提供关于该语言是什么的线索,尽管我打赌100美元,这会在打高尔夫球的一种语言中被破解,然后再被翻译成其他语言。

注意:由于浮点精度错误,仅在输入14时才是准确的。预期的解决方案是相同的。

预期的解决方案,JavaScript(ES7)

for(i=prompt(),s=1/(801**.5-28),a=[1,0];i--;s=1/(s-n))
  n=s|0,a.unshift(a[1]+a[0]*n);
alert(a[0])  //#+2:[]giiiiinnpt

尽管由于JS不支持负索引这一事实,所以该序列的存储方式与Python解决方案几乎相同,但是该序列以最大优先而不是最小优先的顺序存储。


2
我无法处理A042545(15)的情况。OEIS表示它是53000053,但是您的程序说它是27666361(至少在我的机器上)。
boboquack

@boboquack的输出16实际上是53000053,但是在那之后似乎没有任何匹配的术语。我不知道为什么...
ETHproductions 2016年

也许浮点错误会变得越来越严重?
boboquack


1
该死,我是对的!:(这与我接近:gist.github.com/dom111/bd9be933cb8ccd0e303601bf73d525b6无论如何,感谢您的锻炼,我需要|()但只是无法得到它们
Dom Hastings

10

Brain-Flak,24字节,A000290,安全

另一个方形解决方案。这次只不过是括号

({(({}[()])()){}[()]}{})

预期的解决方案是Brain-Flueue,它是使用队列而不是堆栈的Brain-flak版本。该程序是:

({(({})[()]){}}{})[()()]

这些语言被认为是不同的,因为当以另一种语言运行时,这两个程序都不会暂停。


如果允许使用字符代码进行输入/输出,这将在Glypho中起作用...
jimmy23013

@ jimmy23013什么是Glypho?
小麦巫师

6
esolangs.org/wiki/Glypho ((([{}{}{]]}[)))((){))(}
jimmy23013 '16

@WheatWizard如果被破解,您可以编辑答案以表明这一点吗?
mbomb007 '16

@ mbomb007它没有被破解
Wheat Wizard


7

CJam,7个字节,A005843 破解!

ri2*e#^

这是一个基本2*n序列。

说明:

r          e# read input
 i         e# convert to integer
  2*       e# multiply it by 2
    e#^    e# this is a comment that is ignored by the interpreter

在线尝试!


原创解决方案,胡萝卜

#^i*2er

胡萝卜是我创造的一种雪茄。我很久以前就停止开发它。我之所以选择它,是因为我希望其他语言很难注释掉代码中不必要的部分。

说明:

#^            This pushes the input to the stack (anything before the ^ is the stack)
  i           Convert stack to integer
   *2         Multiply it by 2
     er       These are ignored because they are not Carrot commands
              Implicit output

在线尝试!


1
ri#e^*2如果*是乘法而不是取幂,它将在Jelly中工作。太近了……
ETHproductions'Nov

3
破解 :)。
阿德南

除了rpyth 我什么都拥有。激动地看到这一原始代码。
Emigna '16

1
@Emigna我添加了原始代码
Kritixi Lithos


5

Brain-Flak,44字节,A000290 破解

<({({})({}[()])}{}))()()()turpentine/"*"*4splint>

在线尝试!


原始解决方案,Python 2

print(input()**(len(set("{}{}{}[]()<>"))/4))


现在我真的很好奇。您最初打算的解决方案是什么?我可以告诉它的蟒蛇,因为我看到的len set inputprint(因为我知道你喜欢的Python),但我不能怎么说一个数的平方弄清楚
DJMcMayhem

@DrMcMoylex加
小麦向导


5

Python 2,25个字节,A000583,已破解

Y=input("");print`Y**4`,X

打印输出后,该程序退出并出现错误。


我的隐藏代码(与破解解决方案大不相同!):

其实 25个位元组

4,n`*`Y")ii(*nppruttY;="X

在线尝试!

说明:

4,n`*`Y")ii(*nppruttY;="X
4,n                        input, repeat 4 times
   `*`Y                    do * until the stack stops changing (fixed-point combinator)
       ")ii(*nppruttY;="X  push this string and immediately pop and discard it


5

Python,118字节,A042545,安全

i=int(input());s=pow(801.0,0.5);a=[0|0,1]
for Moshprtflmah in range(i):s=1./(s%1);a+=[a[-2]+a[-1]*int(s)];
print(a[i])

这次它可以同时在2和3中使用。并且没有任何评论!你会怎么做?

注意:与旧解决方案一样,由于浮点算术错误,这在前15个项后会失去精度。

预期的解决方案,JavaScript(ES6)

giiiiinnnnprt:
i=prompt([n=+2]);s=Math.pow(801,.5);for(a=[1,0];i--;a.unshift(a[1]+a[0]*(s|0)))s=1/(s%1)
alert(a[0])   

尽管我保留了多个旧版本,但是我还是设法丢失了副本,但是幸运的是,将其与其他版本拼凑在一起并不是一件难事。现在,我发现我prt在这两个程序中都有可能是多余的。那好吧。


我想我想提醒您,您可以根据需要将此标记为安全。
小麦巫师

@WheatWizard谢谢,我已经添加了预期的解决方案。
ETHproductions

5

Python 2,124个字节,A144945,[安全]

破解此漏洞将为您赢得500 rep赏金!太晚了!

在n X n棋盘上放置2个皇后以使其互相攻击的方法数量。

我希望这不太容易。我安排了代码,以使空白清晰可见。这些仅是空格和换行符。

注意:通过字符代码的预期解决方案输出

n=input();print((3+2)*n*n+~0*6*n+1)*n/3;            +6;



























+7+7+7+7+7+7+7+7+7;+++++++++++++++9+9*9*9

在线尝试

旨在解决方案,Headsecks

r2=ni***p**
(


p((0 ;3+++3;+;/


)





i+++nn
 +)7
n

n+++ 


17+~
 +)7;97++++7


69+9n+ ++7+n 69
 +7+ ++7


**7+++tut

这等效于以下BF程序:

>>,[->>>+>>>+>>>+++++<<<<<<<<<]>>>->>>>>>-<<<[[>+<-]>[>>[<<<+>>+>-]<[>+<-]<-]<<<<]>>+++>[-<-[<+<<]<[+[->+<]<+<<]>>>>>]<<<.,.

4

Fuzzy Octo鳄梨调味酱,26字节,A070627 [安全]

49++*5^pm#]%:"?:.=:#,|"1:@

测试用例:

1 -> 1
3 -> 23
5 -> 1

解:

^::::|*?1=#@]","%.#49++5pm

在Magistack中工作。


你好!只是提醒您,此答案可以标记为安全。无需着急,但一周内没人能破解它。干得好,我很想看到一个解决方案
Wheat Wizard

太酷了,等我回到家时再做一次。
Rɪᴋᴇʀ

3

Pyth,75个字节,A004526 破解,牛奶

比起其他任何事情,它更像是一个有趣的测试,但是:

/Q/////////////////****22222 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2;;;;;

在线尝试!

牛奶的解决方案(凸):

2/Q2 2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2*2*2*; 2*;                 2; 2; 2;

在线尝试

预期解决方案(///):

/*///;2/;// ///22/Q//2;///;//;***2222222222222222222222                    

在线尝试

在最后一个分号之前以2的形式输入,并输出正确数量的Q。

该序列是0索引的(即0为0,1为0,2为1,...)

在///中发现轻微的语法错误,因此编辑了所有解决方案。



3

MATL,7字节,A000217,已破解

:sp{1}x

序列是n(n+1)/2(三角形数),在输入开始n=1由挑战指定:13610,...(用于输入输出0并不保证在这两个程序相同)。

使用其他语言的程序退出时出错(在STDOUT中生成正确的输出之后)。

在线尝试!

:            % Push [1 2 ... n], where n is implicit input
 s           % Sum of that array. Gives the desired result
   p         % Product of that. Gives the same number
    {1}      % Push a cell array containing number 1
       x     % Delete it


@StevenH。干得好!我最初的解决方案是x:ps{}1
Luis Mendo,2016年


3

Python 3,27字节,A000012破解

这次没有输入!

if 1:
    if 1:
        print( '1' )

缩进是制表符,而不是保存字节-空格是必需的。

我认为它不需要TIO链接或说明!

(大概不会花很长时间就能破解)

预期答案(空格):

-Start-


    if1:if1:print('1')
-End-

(开始和结束不是程序的一部分)

抱歉,我忘了补充说它可以打印到STDERR:

在线尝试!


1
破解
牛奶

我觉得这应该是空白,但这会向STDERR打印错误,因为它缺少以[LF] [LF] [LF]结尾的必需换行符。
马丁·恩德

1
@milk再也不是你!:D
boboquack

1
@boboquack它确实可以工作,但确实可以打印到STDERR(可以通过在TIO上激活Debug模式看到),挑战是说答案需要指定隐藏语言是否写入STDERR。
马丁·恩德


3

Fuzzy Octo鳄梨调味酱,11字节,A001844 [Safe!]

hha02^d+**+

dh*h++^2*0a在Pyth中,可以进行工作的裂缝是。这不是正确的输出格式。

我的代码仍然在那里!(并且不在Pyth中)

测试用例:

0 -> 1
1 -> 5

解:

^++d0ah*2*h

在Jolf中。


1
我发誓,这看起来像是为乔尔夫(Jolf)制造的,但是我只是d
想不起

破解(我希望...)
ETHproductions 2016年

@ETHproductions啊,很好。不确定是否有价值?参见编辑。
Rɪᴋᴇʀ

我的代码打印换行符,但没有空格。与有效代码相同。
Rɪᴋᴇʀ

@EasterlyIrk尽管我说了什么,但我不认为答案提供了破解。我所说的一切仍然成立,但是我不认为引导空白有效输出,因此我将修正问题以反映这一点。
小麦巫师


2

JavaScript ES6,38个字节,A000290,已破解

J=>eval(Array(J).fill(J).join`+`)|2-2;

这列方形火车很漂亮,但是走得很快。(得到它吗?方形火车吗?就像车轮吗?不?好吧,很好。批评家。)


预期答案:网状(在线尝试!),

in2Jo;=>eval(Array(J).fill(J).j`+`)|-2
in      take input, convert to number
  2J    raise to the second power
    o;  output and terminate; ignores following chars

2
您的代码试图说服我另一种语言是J:P
ETHproductions 2016年



2

2sable,13个字节,A002378破解!

希望我没有错过任何事情。计算a(n)= n×(n + 1)

>*?"!&)<=@\\}

我的版本:

?"\>@&*})<\=!

或展开的版本:

  ? " \
 > @ & *
} ) < \ =
 ! . . .
  . . .

请注意,>左上角的未被使用(2sable程序除外)。我这样做是为了使强盗迷惑(但这显然行不通哈哈)。

在线尝试!



@MartinEnder干得好!我将用原始提交的内容来更新答案:)。
阿德南



2

Python 2,35个字节,A048735,安全

print(lambda u:u&u<<1)(input())>>1

最初的解决方案是使用我自己的编程语言Wise

:<<>&>print(lambda uuu1)(input())1

大多数角色是无关的禁忌。重要角色是前六个。:在堆栈上创建第一项的两个副本。 <<>左移两次,右移一次,这等效于左移一次。 &取第一项和第二项(按原件和按移位的副本)的按位和。最后,>一次向右移位。


2

05AB1E,5字节,A000012,安全

$;$1?

1的序列。在线尝试

预期解决方案:Arcyou

1;$$?

在线尝试。我找不到该语言的文档,因此没有解释它的确切工作方式。


愚蠢的分号...我几乎可以使用Retina了,但不能同时使用1;
mbomb007 '16

1
这还没有被破解
Wheat Wizard

看来此答案现在可以标记为安全了。由于我花了很多时间试图破解这个问题,所以我非常渴望看到预期的答案。
小麦巫师

现在不应该将此答案标记为“已接受”吗?
mbomb007 '17

1

Python 2,70 字节,A000217破解!

我觉得不会用其他版本的语言破解,我们将看到:)

o=input()
v=0
i=1
while o:
 v+=i
 i+=1
print v


#|  d00->1@@@++-^,,[

之后,我意识到我对代码进行了错误的混淆(它不会更改发布的答案的有效性)。这是我在Haystack中开始的代码:

v
0
v
0
i
1
-
>      d0[v
^-1@+@d+1@?,,o|


1

05AB1E,9个字节,A000042 破解!

1×,1*-^$)

这是自然数一元表示形式(OEIS)。因此3,例如,如果输入为,则输出为111

说明:

                    # implicit input
1                   # pushes 1 to the stack   
 ×                  # pushes "1" × (the input)
  ,                 # outputs the stack
   1*-^$)           # irrelevant

在线尝试!


原创解决方案,胡萝卜

1^*$-1×^)

说明

1^             Push "1" to the stack
  *            Multiply the string by
   $-1         ...the input (as an integer) minus 1 times
      ×,)      Ignored by the interpreter

*字符串乘以(n+1)时间,从而a^*3得到aaaa而不是aaa。这就是为什么我1从输入中减去。

直到现在,我才意识到)两种语言都无关紧要:D

在线尝试!



最初的隐藏语言是什么?
小麦巫师

@WheatWizard糟糕,谢谢您的发现。我现在添加了语言
-Kritixi Lithos

1

J,2字节,A000290破解

*~

好吧,不妨开始寻找那些两个字节的文件。产量n × nn 2

预期的解决方案,Jolf,2个字节

*~

好。是的 这是我自己的语言,我认为它可以工作是因为~寻找扩展字符,但找不到扩展字符,因此它会忽略它。¯\ _(ツ)_ /¯糟糕。



@StevenH。不错的工作!我用预期的解决方案进行了编辑。
科纳·奥布莱恩

@ ConorO'Brien您想要的解决方案不是有效的解决方案。为了语言被认为是不同的既不是原始或溶液可以是两种语言一个多语种
小麦向导

@WheatWizard哦。尴尬了。
科纳·奥布莱恩



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.