ค้นหาโปรแกรมที่พิมพ์ลำดับจำนวนเต็มนี้ (เธรด Robbers ')


20

นี่คือเธรดของโจร ด้ายตำรวจไปที่นี่

ในเธรด cops ภารกิจคือการเขียนโปรแกรม / ฟังก์ชันที่ใช้จำนวนเต็มบวก (หรือไม่ใช่ลบ) และเอาต์พุต / ส่งกลับตัวเลขอื่น (ไม่จำเป็นต้องเป็นจำนวนเต็ม) ภารกิจโจรคือถอดรหัสรหัสตำรวจที่ใช้ในการผลิตผลลัพธ์นี้

รหัสที่ถอดรหัสจะต้องไม่เหมือนกันตราบใดที่มีความยาวเท่ากันและอักขระที่เปิดเผยใด ๆ อยู่ในตำแหน่งที่ถูกต้อง ภาษาต้องเหมือนกัน (หมายเลขเวอร์ชันอาจแตกต่างกัน) แน่นอนผลลัพธ์จะต้องเหมือนกัน

ไม่สามารถใช้ตัวเลือกในการแก้ปัญหาของโจร

ผู้ชนะของเธรดโจรจะเป็นผู้ใช้ที่ถอดรหัสข้อมูลที่ส่งมากที่สุดภายในวันที่ 7 พฤษภาคม 2559 หากมีการเสมอกันผู้ใช้ที่ได้ส่งผลงานด้วยรหัสรวมที่ยาวที่สุดจะเป็นผู้ชนะ

การส่งควรมีรูปแบบดังนี้:

ภาษา, อักขระ nn (รวมถึงลิงก์ที่จะตอบ) ชื่อผู้ใช้ของ Cop

รหัส:

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

คำอธิบายและความคิดเห็นเพิ่มเติม


กฎเหล่านี้แตกต่างจาก cops thred ซึ่งมันบอกว่า: อย่างไรก็ตามซอร์สโค้ดที่เสนอมาใด ๆ ที่สร้างชุดของเอาต์พุตเดียวกันจะนับว่าใช้ได้เช่นกันตราบใดที่ยังพบใน OEIS
ข้อบกพร่อง

จะเกิดอะไรขึ้นถ้าตัวอย่างตรงกับซีรี่ส์ OEIS หลายชุด สิ่งนี้เพิ่งเกิดขึ้นกับ Adnan และฉัน
FliiFe

@FliiFe ภายใต้กฎปัจจุบันรหัสใด ๆ ที่ตรงกับรหัสของตำรวจและส่งออกลำดับ OEIS ที่ค่าตรงกับตัวอย่างของตำรวจคือการถอดรหัสที่ถูกต้อง
Mego

เสร็จสิ้นแล้วหรือไม่ มีผู้ชนะหรือไม่
Andrew Savinykh

คำตอบ:



5

Hexagony , 7 ไบต์, Adnan , A005843

?{2'*!@

หรือ

 ? {
2 ' *
 ! @

ลองออนไลน์!

เพียงแค่เพิ่มอินพุตเป็นสองเท่า (และถือว่าอินพุตเป็นบวก) รหัสคือ (สำหรับครั้งเดียว) เพียงดำเนินการในการอ่านคำสั่ง รหัสใช้หน่วยความจำสามขอบA , B , Cโดยที่ตัวชี้หน่วยความจำเริ่มต้นตามที่แสดง:

enter image description here

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

เหมือนกันกับสิ่งที่ฉันมี! :)
Leun Nun

@KennyLau ผมคิดว่าการแก้ปัญหาคือขึ้นไม่ซ้ำกันเพื่อแลกเปลี่ยนบทบาทของและB C
Martin Ender

4

J, 7 ไบต์, CᴏɴᴏʀO'Bʀɪᴇɴ

รหัส

2+*:@p:

เอาท์พุต

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

ลองกับJ.js

มันทำงานอย่างไร

ลำดับA061725ถูกกำหนดให้เป็นA (n): p = n ² + 2ที่P nเป็น(n + 1) THตัวเลขที่สำคัญ

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
Conor O'Brien


4

JavaScript, 10 ไบต์ , user81655 , A033999

ฉันคิดว่าฉันได้รับมัน ใช่. อันนี้มันยากจริงๆ ฉันชอบส่งเพราะมันขึ้นอยู่กับความสำคัญ


เป็นลำดับA033999 :

a (n) = (-1) ^ n

แหล่ง

t=>~t.z**t

คำอธิบาย

หากคุณแยกรหัสนี้ตามลำดับความสำคัญของโอเปอเรเตอร์ JavaScriptคุณจะได้รับ:

  1. .(ความสำคัญ18 ) ได้รับการประเมินครั้งแรกและจะกลับมาt.zundefined
  2. ~(ลำดับที่15 ) พยายามที่จะundefinedส่งผลให้เกิด0และส่งกลับ-1หลังจากไม่ได้ระดับบิต
  3. **(ความสำคัญ14 ) จะกลับมา-1 ^ tที่tเป็นเลขคี่หรือแม้กระทั่งส่งผลให้ในหรือ-11

การสาธิต

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

ลองก่อนซื้อ


ฉันจะให้รางวัลตัวแทน 100 รางวัลจากการส่ง Cop อันเจ๋งนี้


1
คุณถูกต้องขอแสดงความยินดี! :)
user81655

ฉันพิจารณาตัวเองเป็นอย่างดีใน javascript แต่ฉันไม่รู้ว่ามันทำงานอย่างไร
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴฉันได้เพิ่มคำอธิบายแล้ว หวังว่ามันจะอธิบายได้ดีพอ
insertusernamehere

นั่นเป็นสาเหตุที่ว่าทำไมกำลังดุร้ายจึงหาไม่เจอ ฉันใช้ transpiler ที่มี op op ไม่ถูกต้อง> _ <
Conor O'Brien

3

องค์ประกอบ , 7 ไบต์ , PhiNotPi , A000042

_'[,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 นาน :(
แม่ชี

3

PHP, 41 ไบต์ , ชื่อผู้ใช้แทนที่ , A079978

echo/* does n%3=0 */$argv[1]%3<1?1:0    ;

ส่งคืน 1 ถ้าอาร์กิวเมนต์เป็นจำนวนเต็ม 3 และ 0 เป็นอย่างอื่น ไม่มากไปกว่านั้น


รุ่งโรจน์! ฉันมีบางสิ่งบางอย่างที่แตกต่างกันอย่างสิ้นเชิงในใจ :)
insertusername ที่นี่

3

MATL , 9 ไบต์, บีกเกอร์ , A022844

รหัส (ด้วยช่องว่างที่ท้าย):

3x2xYP*k 

ลองออนไลน์!

พบการแข่งขันสามรายการต่อไปนี้พร้อมสคริปต์ที่ฉันเขียน:

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 ไบต์ , Irk ตะวันออก , A001477

axx

ประกอบด้วย cat ง่ายๆ ( ax) ตามด้วย no-op ไม่แน่ใจว่าตำรวจกำลังทำอะไรที่นี่


นั่นไม่ใช่ฟังก์ชั่นตัวตนแน่นอนที่สุด มันเตือนอินพุต มีฟังก์ชั่นตัวตนที่เกิดขึ้นจริง: P
Conor O'Brien

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
แตกต่างจากรหัสดั้งเดิมมาก แต่ก็ยังยินดีด้วย!
แดเนียลเอ็ม


3

05AB1E , 4 ไบต์, Paul Picard , A001317

รหัส:

$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

ลำดับโดยทั่วไปคือรูปสามเหลี่ยมไบนารี Sierpinski:

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
Paul Picard


2

Jolf, 5 ตัวอักษร , CᴏɴᴏʀO'Bʀɪᴇɴ , A033536

รหัส:

!K!8x

เอาท์พุท:

a(2) = 8
a(10) = 4738245926336

นี่เป็นคำตอบเดียวกับที่ฉันมี ฉันกำลังจะโพสต์ :(
คดีฟ้องร้องของกองทุนโมนิกา

คำตอบไม่เหมือนกัน แต่เป็นคำตอบเดียวกัน
Conor O'Brien

@QPaysTaxes ขอโทษ :(
Nun

2

Reng v3.3 , 36 ไบต์ , 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 สำหรับ</div>แท็กปิด HTML ที่ปรากฏในโค้ด Reng
user48538

@ zyabin101 สถานที่ผิดหรือเปล่า?
Leun Nun

Nope ฉันแค่ชอบค้นหาความลับที่ซ่อนอยู่ในรหัส :-P
user48538

อย่างนี้เป็นในรหัสของตำรวจเพื่อ ...
รั่วนูน

2

05AB1E, 3 ไบต์ , Adnan , A000292

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))ที่เป็นsumsummation


เป็นงานที่ดีนั่นเป็นวิธีการแก้ปัญหาที่เหมือนกันแน่นอน :)
Adnan

2

Jolf 11 ไบต์QPaysTaxes , A000005

aσ0xxdxxxxx

ง่ายพอ: alert σ0(จำนวนตัวหาร) xจากนั้นวางสิ่งที่ไร้ประโยชน์ในตอนท้าย

ลองออนไลน์! ปุ่มชุดทดสอบแตกเล็กน้อย แต่ก็ยังแสดงผลลัพธ์ที่เหมาะสม

(คุณจะได้แข็งแรงเล่นกอล์ฟมันลงไปไบต์ที่สองเพียงแค่σ0จะได้ทำอย่าง.)


1
ว้าว! Le builtins ลบล้าง! +1
Adnan

1
นี่ไม่ใช่สิ่งที่ฉันมี แต่มันก็ใช้ได้ดี Mine มีความยาวมากเพราะคุณไม่ได้พูดถึงการหาตัวหารในเอกสาร
คดีฟ้องร้องกองทุนโมนิก้า

@QPaysTaxes ผมคิดว่าผมจำเป็นต้องปรับปรุงเอกสาร: P แต่อย่างจริงจังเพียงแค่ Ctrl + F รหัสที่มา;)
Conor โอไบรอัน

ฉันใส่รหัสเดิมของฉันในคำถามของฉันถ้าคุณต้องการที่จะเห็นมัน ในการหวนกลับฉันควรจะแสดงให้เห็นตัวละครที่แตกต่างกัน: P
คดีของกองทุนโมนิกา

2

Python 2, 87 ไบต์ , Sp3000 , A083054

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

ฉันแน่ใจว่ารหัสจริงสร้างลำดับที่ซับซ้อนกว่านี้ แต่มีเพียงสองเอาต์พุตลำดับ OEIS นี้ง่ายและตรงกับพวกเขา

x=>x?Math.pow(10,x-1):0โดยไม่ต้องทั้งหมดอักขระละเว้นอัลกอริทึมเป็นเพียง


2

05AB1E , 5 ไบต์, Luis Mendo , A051696

รหัส:

Ðms!¿

คำอธิบาย:

Ð      # Triplicate input.
 m     # Power function, which calculates input ** input.
  s    # Swap two top elements of the stack.
   !   # Calculate the factorial of input.
    ¿  # Compute the greatest common divisor of the top two elements.

ดังนั้นโดยทั่วไปนี้จะคำนวณGCD (n !, n n )ซึ่งเป็นA051696

ลองออนไลน์! .




2

PHP, 137 ไบต์, ชื่อผู้ใช้ที่นี่ , A000959

รหัส:

for($s=range(1,303);$i<($t=count($s));$s=array_merge($s))for($j=($k=++$i==1?2:$s[$i-1])-1;$j<$t;$j+=$k )unset($s[$j]);echo$s[$argv[1]-1];

เอาท์พุท:

a(3)  =   7
a(7)  =  21
a(23) =  99

ทำได้ดีมาก แหล่งที่มาของคุณแตกต่างกันเล็กน้อยและคุณยังบันทึกหนึ่งไบต์ :)
insertusername ที่นี่




1

J, 8 ไบต์, Kenny Lau , A057427

รหัส:

(-%- )\.

เอาท์พุท:

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

ฉันไม่คิดว่ามันตั้งใจ และฉันไม่รู้ว่าทำไม J ถึงมีพฤติกรรมนี้ แต่มันได้ผล


จะเพิ่มข้อ จำกัด อีกหนึ่งข้อ xd
Leaky Nun

1

Pyth , 70 ไบต์, FliiFe , A070650

รหัส (ด้วยรุ่นที่สับสนด้านล่าง):

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

มันจะคำนวณA (n) n = 6 % 27ซึ่งเป็นA070650 คำอธิบาย:

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

ลองที่นี่


อุ๊ปส์นั่นไม่ใช่ของ ฉันปรับปรุงคำตอบของฉันกับอีกคนหนึ่ง
FliiFe

จากกฎนี้ถูกต้อง ยินดีด้วย !
FliiFe

ฉันเดาว่าฉันสามารถบอกคุณลำดับตอนนี้มันเป็น A007770 (ดัชนี 0)
FliiFe

@FliiFe โอ้ฉันจะไม่เคยเดาเลยว่า: p
Adnan

จริง ๆ แล้วถ้าคุณรู้ว่าลำดับมันสามารถ spottable ได้ง่าย แต่ถ้าคุณไม่ทำมันจะกลายเป็นเรื่องยากจริงๆ
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

รหัสยุ่งเหยิง:

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.