この整数シーケンスを出力するプログラムを探します(Robbersのスレッド)


20

これが強盗のスレッドです。警官のスレッドはここに行きます

copsスレッドのタスクは、正(または負でない)整数を受け取り、別の数値(必ずしも整数ではない)を出力/返すプログラム/関数を作成することでした。強盗タスクは、この出力を生成するために警官が使用したコードを解読することです。

クラックされたコードは、同じ長さで、表示された文字が正しい位置にある限り、同一である必要はありません。言語も同じでなければなりません(バージョン番号は異なる場合があります)。もちろん、出力は同一でなければなりません。

強盗のソリューションではノーオペレーションを使用できます。

強盗スレッドの勝者は、2016年5月7日までに最も提出物をクラックしたユーザーです。同点の場合、最長の結合コードで提出物をクラックしたユーザーが勝ちます。

提出は次のようにフォーマットする必要があります。

言語、nn文字(回答へのリンクを含む)、警官のユーザー名

コード:

function a(n)
    if n<2 then
        return n
    else
        return a(n-1) + a(n-2)
    end
end

出力

a(0) returns 0
a(3) returns 2

オプションの説明とコメント。


ここでのこれらのルールは、警官のスレッドとは異なります。ただし、同じ出力セットを生成する提案されたソースコードは、OEISでも見つかる限り、有効
-flawr

例が複数のOEISシリーズに一致するとどうなりますか?これはアドナンと私でちょうど起こった
-FliiFe

@FliiFe現在のルールでは、警官のコードと一致し、警官の例と値が一致するOEISシーケンスを出力するコードは有効なクラックです。
メゴ

これは終わりましたか?勝者はいますか?
アンドリューサビニク

回答:



5

六角形7バイト、アドナンA005843

?{2'*!@

または

 ? {
2 ' *
 ! @

オンラインでお試しください!

入力を単純に2倍にします(正の入力を想定します)。コードは(一度だけ)読み取り順に実行されます。コードは、3つのメモリエッジABCを使用し、次のようにメモリポインタを開始します。

ここに画像の説明を入力してください

?    Read integer from STDIN into edge A.
{    Move memory pointer forwards to edge B.
2    Set edge B to 2.
'    Move memory pointers backwards to edge C.
*    Multiply edges A and B and store result in C.
!    Print result to STDOUT.
@    Terminate program.

私が持っていたものとまったく同じ!:)
リーキー修道女

@KennyLauこのソリューションは、Bとの役割を入れ替えるまでユニークだと思いますC
マーティンエンダー

4

J、7バイト、CᴏɴᴏʀO'Bʀɪᴇɴ

コード

2+*:@p:

出力

   f =: 2+*:@p:
   f 0
6
   f 2
27

J.jsで試してください。

使い方

配列A061725は、として定義される(N)= P N ²+ 2P nがある(N + 1)番目の素数。

2+*:@p:  Monadic verb. Argument: n

    @    Atop; combine the verbs to the right and to the left, applying one after
         the other.
     p:  Compute the (n+1)th prime number.
  *:     Square it.
2+       Add 2 to the result.

良くやった!あなたは私がXDよりもコードを理解している
コナー・オブライエン


4

JavaScript、10バイトuser81655A033999

わかったと思う。うん。これは本当に大変でした。優先順位に大きく依存しているため、私は提出が好きです。


それはシーケンスA033999です:

a(n)=(-1)^ n。

ソース

t=>~t.z**t

説明

JavaScript演算子の優先順位に従ってこのコードを分割すると、次の結果が得られます。

  1. .(優先順位18)は最初に評価され、t.zを返しundefinedます。
  2. ~(優先順位15)はキャストを試みundefined、結果は0になり-1、ビット単位ではなく後に戻ります。
  3. **(優先14)戻ります-1 ^ tここで、tであり、奇数又は偶数で得られた、-1または1

デモ

console.log(
    (t=>~t.z**t)(0),
    (t=>~t.z**t)(1),
);

購入前に試す


このクールなCopの提出に対して100 repの賞金を授与します。


1
おめでとうございます!:)
user81655

私は自分がjavascriptに精通していると考えていますが、これがどのように機能するのか分かりません
コナーオブライエン

@CᴏɴᴏʀO'Bʀɪᴇɴ説明を追加しました。うまくいけばそれで十分に説明できます。
ここにユーザー名を挿入します

それが、ブルートフォースがそれを見つけられなかった理由です。op_precedenceが間違っているトランスパイラーを使用しました> _ <
Conor O'Brien

3

要素7バイトPhiNotPiA000042

_'[,1`}

注:}長い間、私はに惑わされました。したがって、これも一致し[ます。

オンラインでお試しください!


使い方:

_'[,1`}
_        main_stack.push(input());
 '       control_stack.push(main_stack.pop());
  [      Object temp = control_stack.pop();
         for(int i=0;i<temp;i++){
   ,         Object a = main_stack.pop(); //is actually zero
             main_stack.push(a.toChars()[0]);
             main_stack.push(a);
    1        main_stack.push(1);
     `       System.out.println(main_stack.pop());
      }  }

いいね!私はこれを試していましたが、,物事を壊すのを止める方法を理解できませんでした。
ファンドモニカの訴訟

私のトリックは,$、1を生成することでした。これは、本当に混乱を招く,演算子をプログラムに入れるための言い訳になりました。
PhiNotPi

私は}tooooo長い間立ち往生していた:(
Nun


3

MATL9バイト、ビーカーA022844

コード(末尾に空白を含む):

3x2xYP*k 

オンラインでお試しください!

私が書いたスクリプトで次の3つの一致を見つけました。

Found match: A022844
info: "name": "Floor(n*Pi).",

Found match: A073934
info: "name": "Sum of terms in n-th row of triangle in A073932.",

Found match: A120068
info: "name": "Numbers n such that n-th prime + 1 is squarefree.",

私は最初のものをしようとしましたが、これは基本的には次のように行われYP*kます:

3x2x       # Push 3, delete it, push 2 and delete that too
    YP     # Push pi
      *    # Multiply by implicit input
       k   # Floor function

3

Jolf、3バイトEasterly IrkA001477

axx

単純な猫(ax)とそれに続くノーオペレーションで構成されます。ここで警官が何をしようとしていたのか分かりません。


それはほとんど間違いなく恒等関数ではありません。入力を警告します。実際のアイデンティティ関数があります:P
コナーオブライエン

3

Java、479バイトDaniel M.A000073

コード:

import java.util.*;
public class A{

    public static int i=0;
    public boolean b;

    static A a = new A();

    public static void main(String[] args){
        int input = Integer.parseInt(args[0]);

        LinkedList<Integer> l = new LinkedList<>();
        l.add(1);
        l.add(0);
        l.add(0);

        for(int ix = 0; ix<=input; ix++)if(ix>2){
            l.add(0,l//d
            .get(1)+l.peekFirst()+     l.get(2));
        }

        System.out.println(input<2?0:l.pop()
              +(A.i        +(/*( 5*/ 0 )));
    }
}

表示されていない文字を見逃した場合、それらはスペースに置き換えられます。


1
元のコードとは非常に異なりますが、それでもおめでとうございます!
ダニエルM.

3

ルビー、38バイト、ヒストクラットA008592

->o{(s="+o++o"*5).sum==03333&&eval(s)}

私がこれを手で見つけたので、意図したソリューションとは異なる可能性があります。


うまくできました!目的のソリューションは似ていました:"+f+=f"*5
-histocrat

3

05AB1E4バイト、Paul PicardA001317

コード:

$Fx^

オンラインでお試しください!

説明:

$      # Pushes 1 and input
 F     # Pops x, creates a for-loop in range(0, x)
  x    # Pops x, pushes x and 2x
   ^   # Bitwise XOR on the last two elements
       # Implicit, ends the for-loop
       # Implicit, nothing has printed so the last element is printed automatically

シーケンスは基本的にバイナリのシェルピンスキーの三角形です。

f(0)=      1                    =1
f(1)=     1 1                   =3
f(2)=    1 0 1                  =5
f(3)=   1 1 1 1                 =15
f(4)=  1 0 0 0 1                =17

そして、式a(n)= a(n-1)XOR(2×a(n-1))に変換されます

幸いなことに、私はこれを思い出しました :)


1
そして、それはまったく同じものです。確かに:D
ポールピカード



2

Reng V3.336バイトCᴏɴᴏʀO'BʀɪᴇɴA005449

iv:#+##->>)2%æ~¡#~
#>:3*1+*^##</div>

出力

a(1) = 2
a(3) = 15

説明

)十分なスペースがなかったためを除いて、事前に指定したコマンドを完全に無視しました。

実際に役立つコマンドは次のとおりです。

iv      >>)2%æ~
 >:3*1+*^

直線に引き伸ばされた:

i:3*1+*)2%æ~

説明付き:

i:3*1+*)2%æ~ stack
i            [1]      takes input
 :           [1,1]    duplicates
  3          [1,1,3]  pushes 3
   *         [1,3]    multiplies
    1        [1,3,1]  pushes 1
     +       [1,4]    adds
      *      [4]      multiplies
       )     [4]      shifts (does nothing)
        2    [4,2]    pushes 2
         %   [2]      divides
          æ  []       prints
           ~ []       halts

式はa(n) = n(3n+1)/2です。


+1 for </div>、HTML終了タグで、Rengコードに何らかの形で表示されます。
user48538

@ zyabin101間違った場所?
リーキー修道女

いや。コードに隠された秘密を見つけるのが好きです。:-P
user48538

まあ、これは...そう、警官のコードである
漏洩修道女

2

05AB1E、3バイトAdnanA000292

LLO

出力

a(9) = 165
a(10) = 220

使い方

LLO Stack
L   [1,2,3,4,5,6,7,8,9]                         range
 L  [1,1,2,1,2,3,1,2,3,4,...,1,2,3,4,5,6,7,8,9] range of range
  O sum all of them

数学的な同等物はsum(sum(n))、であり、sumはであるsummation


いい仕事です、まったく同じ解決策でした:)
アドナン

2

Jolf、11バイト、QPaysTaxesA000005

aσ0xxdxxxxx

簡単なこと:(約数の数)をalert し、最後に無駄なものを置きますσ0x

オンラインでお試しください!テストスイートのボタンは少し壊れていますが、それでも適切な結果が表示されます。

(2バイトにゴルフすることができます!σ0うまくできていたでしょう。)


1
うわー!Le builtins極小!+1
アドナン

1
これは私が持っていたもののようなものではありませんが、確かに動作します。ドキュメントで除数を見つけることについて言及していないので、私のものは非常に長かったです。
ファンドモニカの訴訟

@QPaysTaxes私はドキュメントを更新する必要があると思います:Pしかし、真剣に、ソースコードをCtrl + Fだけ;)
コナーオブライエン

ご覧になりたい場合は、元のコードを質問に入れます。P:振り返ってみると、私は別の文字を示している必要があります
基金モニカの訴訟

2

Python 2、87 バイトSp3000A083054

n=input()
_=int(3**.5*n)-3*int(n/3**.5)########################################
print _

それほど難しくありません、実際には。指定されたスペースで生成できるものが見つかるまで、制約を満たすシーケンスを検索しました。



2

JavaScript(ES6)、119バイト、CᴏɴᴏʀO'BʀɪᴇɴA178501

x=>(n="=>[[["|x|"##r(###f#n###;##")|n?Math.pow("#<1##].c####t.##pl##[####nc#"|10,"y([###(###(#]###)"|x-1|``):0|`#h####`

実際のコードはこれよりもトリッキーなシーケンスを生成するはずですが、2つの出力だけで、このOEISシーケンスは単純で一致します。

すべての無視された文字がなければ、アルゴリズムはただx=>x?Math.pow(10,x-1):0です。










1

Pyth70バイト、FliiFeA070650

コード(難読化されたバージョンを含む):

DhbI|qb"#"qb"#"R!1Iqb"#";=^Q6+""s ]%Q27  ;.qlY+Q1Ih+""Z##;.q)=Z+Z1;@YQ
DhbI|qb"#"qb"#"R!1Iqb"#"#####+""s####2###;##lY+Q1Ih+""Z#####)=Z+Z1;@YQ (obfuscated)

これは基本的に:

=^Q6%Q27

これは、計算(N)をN = 6〜27%である、A070650。説明:

=^Q6       # Assign Q to Q ** 6
    %Q27   # Compute Q % 27
           # Implicit output

ここで試してみてください


おっと、それじゃない。答えを別の答えに更新しました
-FliiFe

ルールから、これは有効です。おめでとうございます!
FliiFe

私は今あなたにシーケンスを伝えることができると思います、それはA007770(0インデックス付き)
FliiFe

@FliiFeああ、私はそれを推測することはなかっただろう:p-
アドナン

実際、シーケンスを知っていれば簡単に見つけることができますが、知らない場合は本当に難しくなります
-FliiFe

1

Pythonの、108、CAD97A005132

def a(n):
 if n == 0: return 0
 f=a(n-1)-n
 return f if f>0 and not f in(a(i)for i in range(n))else a(n-1)+n

難読化されたコード:

def a(n):
 ###n####0######n#0
 f=a#######
 return f #f#####a###### f ####a(##f###i#i###a####n##else a#######

出力:

>>> a(0)
0
>>> a(4)
2
>>> a(16)
8
>>> a(20)
42

まさに私が持っていたもの。正直、簡単だと思っていました。
CAD97
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.