翻译迷失


15

如果您不熟悉这种格式,这是一个,请单击标记以转到Wiki。这个问题不会有强盗的线索。

警察

作为警察的任务是从“ 整数序列在线百科”中选择两个序列,并编写一个程序以一个序列的第n个元素为输入并输出第二个序列的第n个元素。然后,您将做出包含代码的答案,并省略所选的序列。强盗将尝试找到您选择的序列,如果一个人设法找到了您要记住的序列或您的程序必须将其他序列标记为“ 破解”。如果强盗通过裂缝告知您您认为无效,则可以出示不是裂缝的证据。否则,您必须对其进行标记。

根据7天内未破解的常见答案,可以标记为安全。一名警察可能会通过揭示他们想出的顺序来将其答案标记为安全。一旦安全,答案将不再被破解。

目的是使程序的字节数最小化,同时保持其完整性。

以下Python代码将A000290的第n个元素(平方数)转换为A000217(三角形数):

lambda x:sum(range(0,int(x**.5+1)))

规定和要求

  • 如果选择的序列尚未被证明是有限的,则必须输出所有可能存在的术语,而不仅仅是OEIS页面上列出的术语

  • 作为以前的规则的例外,没有无限精度整数的语言不必输出或输入超出其范围的数字。

  • 输入序列的大小一定不能证明小于输出序列的大小。

  • 您的输入序列不得包含任何重复元素(否则该任务几乎是不可能的)

  • OEIS默认情况下在其页面上包含一个索引(“ OFFSET”标头之后的第一个数字),如果您选择另一个索引,则这是您对n的偏移量(n等于序列中第一个元素的索引)。你的答案。

  • 如果您选择的偏移量不同于OEIS上列出的偏移量,则仍必须将输入序列中的所有元素映射到输出序列中的相应元素。

  • 如果您的程序收到的输入不在输入序列中,则它可能会做任何希望的事情(未定义的行为)。但是,仍然输出整数可能符合您的最大利益。

  • 故意使您的代码难以运行,这很不精打细算,无论是通过花费大量时间来执行代码还是通过非自由语言选择。虽然我将强制执行后者,但我不能客观地强制执行前者。但是,为了好玩,我恳请您不要尝试使用前者,因为对于那些计算机较弱的人来说,挑战尤其困难。

强盗

作为强盗,您的任务是选择完整,不安全的答案,并找到它们之间的对应顺序。如果找到解决方案,则可以使用有效的解决方案(不一定是警察的预期解决方案),在适当的答案上注释序列。

强盗不必担心验证两个特定的序列是否为解决方案,如果匹配OEIS上的所有条目,则应发布解决方案。如果这不是警察考虑的顺序,则警察可能会提供证明它是不正确的证据,或者如果找不到他们,则将其标记为破裂。


3
强盗如何确定他的答案适合所有输入?他们需要数学证明吗?
狮子座

1
@Leo强盗如果与OEIS上的所有条目均匹配,则应发布解决方案。如果这不是警察考虑的顺序,他们可能会提供证明不正确的证据,或者如果找不到他们,则将其标记为破裂。我将更新强盗的线程。
发布Rock Garf Hunter,

2
很难在常见的假设和未经证实的想法之间划清界限。为了清楚起见,我要说的是您必须能够证明您的答案有效。
丹尼斯

1
我觉得有些愚蠢的解决方案可以用oeis.org/A000004- > oeis.org/A000012
Wolfram

2
@丹尼斯我想这是一个好点。令人遗憾的是,人们没有办法找到裂缝来获得代表,因为对于这一挑战而言,这似乎非常棘手。
0'

Answers:


6

果冻,14个字节(@Wolfram破解)

+66%444µ111<µ¡

在线尝试!

这样做很明显。实际上,出于非果冻用户的利益,我什至会给出一个解释:

说明

+66%444µ111<µ¡
       µ    µ¡  Run the transformation
+66%444           "add 66, then modulo 444"
        111<    once if 111 is less than the input, zero times otherwise 

问题是,为什么要这样做?

裂纹

有问题的序列是A201647A201647。它们是有限的,仅在最后两个元素上有所不同:

  • 3、5、7、9、11、15、21、165、693
  • 3、5、7、9、11、15、21、231、315

因此,如果输入为低电平,则将其保持不变,并且仅将一个函数拟合为后两个的转换即可。


@WheatWizard:如果您认为可以从中获得好处,那就去吧。但是您必须快速,就像其他人在启用缓存的情况下对其进行测试一样,他们最终将污染之后的所有人。

@WheatWizard 禁用输出缓存可确保您从服务器获得了新的结​​果,但是该新结果仍将被缓存。
丹尼斯

1
@WheatWizard或在测试时添加缓存破坏者:随机选择的字符串作为注释的一部分或未使用的输入字段。
丹尼斯

+1这个答案本质上确实很简单,但仍然对强盗构成挑战
Kritixi Lithos


3

果冻,7个字节(@JonathanAllan破解)

ÆFḅÆdÆẸ

在线尝试!

它能做什么

ÆFḅÆdÆẸ  Main link. Argument: n

ÆF       Factor n into prime-exponent pairs.
   Æd    Compute σ, the number of divisors of n.
  ḅ      Convert each pair from base σ to integer.
     ÆẸ  Yield the integer whose prime signature (infinite sequence of all prime
         exponents, including zeroes, in order) is equal to the result.

3
可能还有其他有效的映射,但是我认为您想到的是素数-A0000402 ^(2p + 1),p素数-A100626
乔纳森·艾伦

@JonathanAllan我也来到了A000040-> A100626,尽管你打了我慢慢的手指
Ahemone

我们也可以看到,它会举行:输入是一个素数,时pÆF收益率(p,1)Æd收益率2,所以让我们动2p+1装置,该装置ÆẸ将产生的第一任,2上调至该结果的力量,2^(2p+1)
乔纳森·艾伦

@JonathanAllan是的,那就是我要的。
丹尼斯

2

Python 3,256字节(破解!

from math import*
def p(i,m):
 r=0;d=floor(log(i))
 for y in range(d):r+=(pow(16,d-y-1)%(8*y+m))/(8*y+m)
 o=-1;y=d
 while r!=o:o=r;r+=pow(16,d-y-1)/(8*y+m);y+=1
 return r
def q(n):r=4*p(n,1)-2*p(n,4)-p(n,5)-p(n,6);return floor((1-(-r%1)if r<0 else r%1)*16)

在线尝试!

抱歉,如果这段代码看起来太可怕了,我认为这是我第一次参加Python。Python中的强制转换使编码更容易。


我假设有问题的功能是q
发布Rock Garf Hunter,2017年

而且该变量k似乎未使用,因此您可以通过删除它来节省一些字节。
发布Rock Garf Hunter,2017年


@WheatWizard是的,谢谢,是的。
betseg

2

处理中,184个字节,安全!

int x(int y){int b=TRIANGLES-MITER;for(int i=OVERLAY/BURN;i>#fffffe;b*=(int)pow(y,(MOVE-HAND+0.)/(int)sqrt(red(color(-1<<16))/(int)log(color(0)*color(-1)))),i-=QUAD/DARKEST);return b;}

接受一个int并返回一个int的函数。只要输入号码在int的范围内,程序就可以正常工作。

这并不慢,只是难以理解。祝好运!


我感到惊讶的是,这种提交持续了这么长时间。哦,好吧,至少这是第一次安全提交:)

A000578 A000290

换句话说:立方体到正方形。

说明

在回答未附加任何字符串(或数字)时,我发现了一个表示int的Processing常量列表。例如,CORNER值为0。完整列表可以在这里找到。要找到常量的值,您可以print了。

使用此方法,我决定将某些数字与这些常量的组合交换以使其模糊。因此,这是将常量替换为其各自的int值时所得到的。

int x(int y){int b=9-8;for(int i=512/8192;i>#fffffe;b*=(int)pow(y,(13-12+0.)/(int)sqrt(red(color(-1<<16))/(int)log(color(0)*color(-1)))),i-=16/16);return b;}

即使到现在,仍未透露完整的清晰代码。颜色保留下来。在处理中,颜色变量具有int值,例如white(#ffffff)是-1#fffffeis -2#fffffdis -3,依此类推。可以通过print颜色找到它。因此,让我们简化颜色。

int x(int y){int b=9-8;for(int i=512/8192;i>-2;b*=(int)pow(y,(13-12+0.)/(int)sqrt(red(color(-1<<16))/(int)log(-16777216*-1))),i-=16/16);return b;}

我们大约要走一半了:)要理解这些值,我们需要简化数值表达式。

int x(int y){int b=1;for(int i=0;i>-2;b*=(int)pow(y,(1.)/(int)sqrt(red(color(-65536))/(int)log(16777216))),i-=1);return b;}

更清晰!现在让我们简化对数。

int x(int y){int b=1;for(int i=0;i>-2;b*=(int)pow(y,(1.)/(int)sqrt(red(color(-65536))/(int)16.6...)),i-=1);return b;}


int x(int y){int b=1;for(int i=0;i>-2;b*=(int)pow(y,(1.)/(int)sqrt(red(color(-65536))/16)),i-=1);return b;}

差不多结束了!现在我们必须弄清楚这一点(int)sqrt(red(color(-65536))/16))color(-65536)是红色的,所以rgb(255, 0, 0)。现在,该red()函数返回参数中红色分量的值(这是一种颜色)。那么红色有多少红色?答案是255。这样我们得到

(int)sqrt(255/16))
(int)sqrt(15)
(int)3.8...
3

将其替换为程序会导致:

int x(int y){int b=1;for(int i=0;i>-2;b*=(int)pow(y,(1.)/3),i-=1);return b;}

是的,完成了!

int x(int y){                        // y is the cube
  int b=1;                           // variable that holds the final result
  for(int i=0;                       // for-loop that
          i>-2;                      // loops twice
          b*=(int)pow(y,(1.)/3),     // multiply b by the cube root of y
          i-=1);                     // decrement the looping variable
  return b;                          // finally return b
}

概括起来,这将返回输入数字的立方根的平方(在for循环中乘以两次)。


0

Mathematica(或其他)-  破解!

f[x_] := Quotient[ 366403414911466530559405368378193383110620062 - 
    755296348522256690003418238667147075159564695 x + 
    525778437135781349270885523650096958873079916 x^2 - 
    156594194215500250033652167655133583167162556 x^3 + 
    20861131421245483787723229627506507062999392 x^4 - 
    1181515772235154077024719095229309394979146 x^5 + 
    29382627265060088525632055454760915985604 x^6 - 
    308672970015057482559939241399297150364 x^7 + 
    1087516675449597417990589334580403666 x^8 - 
    312989984559486345089577524231879 x^9, 
  265451130886621254401938908479744271974400 ]

我知道Mathematica是非自由软件,但是将该函数移植到您要在其中运行的任何喜欢的语言都是微不足道的。它从字面上计算在输入整数处评估的给定度数9多项式的值,然后采用整数商值和最后一行的42位数字组成。例如,f[100]计算为-3024847237


2
A003173A165892。并不是真正的编程问题;)
Leo

2
无论如何,因为数学是不是免费的,我写这个把它变成一个Python功能
狮子座

@Leo:干得好!函数中也有一个复活节彩蛋;找到了吗 :D
格雷格·马丁

呃...不,(:
Leo

要将一个9个元素的集合映射到另一个9个元素的集合,我只需要一个次数为8的多项式。您可以得出一个(正确的)结论:我还​​有一个输入值映射到特定的输出值。让我知道是否(何时)找到它的:)
Greg Martin
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.