Suchen Sie das Programm, das diese Ganzzahlsequenz ausgibt (Räuberthread).


20

Das ist der Räuberfaden. Der Faden der Bullen geht hier .

Im cops-Thread bestand die Aufgabe darin, ein Programm / eine Funktion zu schreiben, die eine positive (oder nicht negative) Ganzzahl annimmt und eine andere Zahl ausgibt / zurückgibt (nicht unbedingt eine Ganzzahl). Die Aufgabe des Räubers besteht darin, den Code zu entschlüsseln, mit dem die Cops diese Ausgabe erstellt haben.

Der geknackte Code muss nicht identisch sein, solange er dieselbe Länge hat und sich alle offenbarten Zeichen an den richtigen Positionen befinden. Die Sprache muss auch gleich sein (Versionsnummern können unterschiedlich sein). Die Ausgabe muss natürlich identisch sein.

No-Ops können in der Räuberlösung verwendet werden.

Der Gewinner des Räuber-Threads ist der Benutzer, der bis zum 7. Mai 2016 die meisten Beiträge geknackt hat. Bei einem Gleichstand gewinnt der Benutzer, der Beiträge mit dem längsten kombinierten Code geknackt hat.

Die Einreichung sollte folgendermaßen formatiert sein:

Sprache, nn Zeichen (einschließlich Link zur Antwort), Cop's Benutzername

Code:

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

Ausgabe

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

Optionale Erklärung und Kommentare.


Diese Regeln unterscheiden sich von denen der Polizei, in denen es heißt: Jeder vorgeschlagene Quellcode, der denselben Satz von Ausgaben erzeugt, gilt jedoch auch als gültig, solange er auch in OEIS enthalten ist.
Fehler

Was passiert, wenn die Beispiele mit mehreren OEIS-Serien übereinstimmen? Dies geschah gerade mit Adnan und mir
FliiFe

@FliiFe Nach den aktuellen Regeln ist jeder Code, der mit dem Code des Polizisten übereinstimmt und eine OEIS-Sequenz ausgibt, deren Werte mit den Beispielen des Polizisten übereinstimmen, ein gültiger Riss.
Mego

Ist das erledigt? Gibt es einen Gewinner?
Andrew Savinykh

Antworten:



5

Hexagony , 7 Bytes, Adnan , A005843

?{2'*!@

oder

 ? {
2 ' *
 ! @

Probieren Sie es online!

Verdoppelt einfach die Eingabe (und setzt positive Eingabe voraus). Der Code wird (einmalig) einfach in Lesereihenfolge ausgeführt. Der Code verwendet drei Speicherflanken A , B , C, wobei der Speicherzeiger wie folgt beginnt:

Bildbeschreibung hier eingeben

?    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.

Genau das gleiche mit dem, was ich hatte! :)
Undichte Nonne

@KennyLau Ich denke, die Lösung ist einzigartig, wenn es darum geht, die Rollen von Bund zu tauschen C.
Martin Ender

4

J, 7 Bytes, Cᴏɴᴏʀ O'Bʀɪᴇɴ

Code

2+*:@p:

Ausgabe

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

Probieren Sie es mit J.js .

Wie es funktioniert

Sequence A061725 ist definiert als A (n): = p n ² + 2 , wobei p n ist der (n + 1) -ten Primzahl.

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.

Gute Arbeit! Sie verstehen den Code besser als ich XD
Conor O'Brien


4

JavaScript, 10 Byte , user81655 , A033999

Ich glaube, ich habe es verstanden. Ja. Dieser war wirklich schwer. Ich mag die Einreichung, weil sie stark von Präzedenzfällen abhängt.


Es ist die Sequenz A033999 :

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

Quelle

t=>~t.z**t

Erläuterung

Wenn Sie diesen Code gemäß den Prioritäten des JavaScript-Operators aufteilen, erhalten Sie:

  1. .(Priorität 18 ) wird zuerst ausgewertet und t.zkehrt zurück undefined.
  2. ~(Vorrang 15 ) versucht zu casten undefined, was dazu führt 0, und kehrt -1nach bitweisem nicht zurück.
  3. **(Priorität 14 ) zurückkehren -1 ^ t, wo tist ungerade oder sogar , was zu -1oder 1.

Demo

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

Versuchen Sie es vor dem Kauf


Ich werde eine Prämie von 100 Wiederholungen für diese coole Cop-Einreichung vergeben.


1
Du hast recht, Glückwunsch! :)
user81655

Ich bin mit Javascript vertraut, aber ich habe keine Ahnung, wie das funktioniert.
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ Ich habe eine Erklärung hinzugefügt. Hoffentlich erklärt es es gut genug.
Insertusernamehere

Deshalb hat die Brute-Force es nicht gefunden. Ich habe einen Transpiler mit falscher Priorität verwendet> _ <
Conor O'Brien

3

Element , 7 Bytes , PhiNotPi , A000042

_'[,1`}

Anmerkungen: Ich wurde }soooooo lange von der irregeführt. So passt es auch [.

Probieren Sie es online!


Wie es funktioniert:

_'[,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());
      }  }

Nett! Ich habe es versucht, aber ich konnte nicht herausfinden, wie ich die ,Dinge nicht mehr kaputt machen kann.
Fund Monica Klage

Mein Trick bestand darin ,$, eine 1 zu erzeugen, was mir eine Ausrede gab, den wirklich verwirrenden ,Operator in mein Programm aufzunehmen.
PhiNotPi

Ich war }für zuoooo lange stecken :(
Undichte Nonne


3

MATL , 9 Bytes, Becher , A022844

Code (mit einem Leerzeichen am Ende):

3x2xYP*k 

Probieren Sie es online!

Die folgenden drei Übereinstimmungen wurden mit einem von mir geschriebenen Skript gefunden:

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.",

Ich habe versucht, die erste zu machen, was im Grunde genommen geschieht mit 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 Bytes , Easterly Irk , A001477

axx

Besteht aus einer einfachen Katze ( ax), gefolgt von einem No-Op. Ich bin mir nicht sicher, was der Polizist hier vorhatte.


Das ist definitiv nicht die Identitätsfunktion. Es alarmiert die Eingabe. Es gibt aktuelle Identitätsfunktionen: P
Conor O'Brien

3

Java, 479 Bytes , Daniel M. , A000073

Code:

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 )));
    }
}

Wenn Sie nicht aufgedeckte Zeichen vermissen, werden diese durch Leerzeichen ersetzt.


1
Ganz anders als der ursprüngliche Code, aber trotzdem, herzlichen Glückwunsch!
Daniel M.

3

Ruby, 38 Bytes, Histokrat , A008592

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

Könnte sich von der beabsichtigten Lösung unterscheiden, da ich dies von Hand fand.


Schön gemacht! Beabsichtigte Lösung war ähnlich: "+f+=f"*5.
Histokrat

3

05AB1E , 4 Bytes, Paul Picard , A001317

Code:

$Fx^

Probieren Sie es online!

Erläuterung:

$      # 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

Die Folge ist im Grunde ein binäres Sierpinski-Dreieck:

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

Und übersetzt in die Formel a (n) = a (n - 1) XOR (2 × a (n - 1))

Zum Glück erinnerte ich mich an dieses :)


1
Und es ist in der Tat genau das gleiche: D
Paul Picard



2

Reng v3.3 , 36 Bytes , Cᴏɴᴏʀ O'Bʀɪᴇɴ , A005449

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

Ausgabe

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

Erläuterung

Ich habe die vorgegebenen Befehle vollständig ignoriert, außer den, )weil ich nicht genügend Speicherplatz hatte.

Die eigentlich nützlichen Befehle sind hier:

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

Zu einer geraden Linie gestreckt:

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

Mit Erklärung:

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

Die Formel lautet a(n) = n(3n+1)/2.


+1 für </div>ein HTML-Abschluss-Tag, das irgendwie im Reng-Code vorkommt.
user48538

@ zyabin101 Falscher Ort?
Undichte Nonne

Nee. Ich mag es einfach, versteckte Geheimnisse im Code zu finden. :-P
user48538

Nun, das ist im Code des Polizisten, also ...
Undichte Nonne

2

05AB1E, 3 Bytes , Adnan , A000292

LLO

Ausgabe

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

Wie es funktioniert

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

Das mathematische Äquivalent ist sum(sum(n)), wo sumist summation.


Gute Arbeit, das war genau die gleiche Lösung :)
Adnan

2

Jolf, 11 Byte, QPaysTaxes , A000005

aσ0xxdxxxxx

Einfach genug: alass die σ0(Anzahl der Teiler von) x, dann setze nutzloses Zeug am Ende.

Probieren Sie es online! Die Testsuite-Schaltfläche ist ein bisschen kaputt, zeigt aber immer noch die richtigen Ergebnisse.

(Du hättest es auf zwei Bytes reduzieren können! Hätte es einfach σ0gut gemacht.)


1
Wow! Le builtins minuscules! +1
Adnan

1
Das ist nicht das, was ich hatte, aber es funktioniert sicher. Meins war so lang, weil Sie keine Erwähnung hatten, Teiler in den Dokumenten zu finden.
Fund Monica Klage

@ QPaysTaxes Ich denke, ich muss die Dokumente aktualisieren: P Aber im Ernst, nur Strg + F den Quellcode;)
Conor O'Brien

Ich habe meinen Originalcode in meine Frage eingefügt, wenn Sie ihn sehen möchten. Im Nachhinein hätte ich verschiedene Charaktere zeigen sollen: P
Fund Monica's Lawsuit

2

Python 2, 87 Bytes , Sp3000 , A083054

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

Eigentlich nicht so schwer. Ich habe nur nach Sequenzen gesucht, die die Einschränkungen erfüllten, bis ich eine gefunden habe, die in dem angegebenen Raum generiert werden konnte.



2

JavaScript (ES6), 119 Byte, Cᴏɴᴏʀ O'Bʀɪᴇɴ , A178501

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

Ich bin sicher, dass der eigentliche Code eine schwierigere Sequenz als diese generiert, aber mit nur den zwei Ausgaben ist diese OEIS-Sequenz einfach und stimmt mit ihnen überein.

Ohne alle ignorierten Zeichen ist der Algorithmus gerecht x=>x?Math.pow(10,x-1):0.









1

J, 8 Bytes, Kenny Lau , A057427

Code:

(-%- )\.

Ausgabe:

a(0) = 0
a(1..29) = 1

Ich denke nicht, dass das beabsichtigt ist. Und ich weiß nicht, warum J dieses Verhalten hatte. Aber es funktioniert.


Ich werde noch eine Einschränkung hinzufügen xd
Leaky Nun

1

Pyth , 70 Bytes, FliiFe , A070650

Code (mit verschleierter Version unten):

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)

Dies macht im Grunde:

=^Q6%Q27

Es berechnet a (n) = n 6 % 27 , was A070650 ist . Erläuterung:

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

Probieren Sie es hier aus


Ups, das ist nicht der eine. Ich habe meine Antwort mit einer anderen aktualisiert
FliiFe

Nach den Regeln ist dies gültig. Glückwunsch !
FliiFe

Ich denke, ich kann dir jetzt die Sequenz sagen, es ist A007770 (0-indiziert)
FliiFe

@FliiFe Oh, das hätte ich nie gedacht: p
Adnan

Eigentlich, wenn Sie die Sequenz kennen, ist es leicht zu erkennen, aber wenn Sie es nicht tun, wird es wirklich schwer
FliiFe

1

Python, 108, CAD97 , A005132

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

Verschleierter Code:

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

Ausgänge:

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

Genau das was ich hatte. Erwartet, dass es einfach ist, ehrlich.
CAD97
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.