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


39

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

สุดท้ายด้ายที่มีอยู่แล้ว4 เดือนที่ผ่านมา

ภารกิจของตำรวจ

  • ภารกิจของตำรวจคือการเขียนโปรแกรม / ฟังก์ชั่นที่ใช้จำนวนเต็มบวก (หรือไม่ใช่ลบ) และเอาท์พุท / ส่งกลับจำนวนเต็มอื่น
  • ตำรวจต้องระบุว่าหากโปรแกรมนั้นมีความอดทนต่อศูนย์
  • ตำรวจจะให้อินพุต / เอาต์พุตตัวอย่างอย่างน้อย2ตัวอย่าง
  • ตัวอย่างเช่นถ้าฉันตัดสินใจที่จะเขียนลำดับฟีโบนักชีฉันจะเขียนคำตอบของฉัน:
a (0) ส่งคืน 0
a (3) ส่งคืน 2
  • จำนวนตัวอย่างขึ้นอยู่กับดุลยพินิจของตำรวจ
  • อย่างไรก็ตามลำดับจะต้องมีอยู่จริงในสารานุกรมออนไลน์ของ Integer Sequences®ดังนั้นจึงไม่มีตัวสร้างตัวเลขสุ่มหลอกให้คุณ:(
  • ตำรวจสามารถซ่อนตัวละครได้มากเท่าที่ต้องการ
  • ตัวอย่างเช่นหากโปรแกรมของฉันคือ:

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

  • จากนั้นฉันจะซ่อนอักขระเหล่านี้ตามที่ต้องการ:

function a(n)
    if ### then
        ########
    else
        ######################
    end
end

ภารกิจของโจร

  • เห็นได้ชัดว่าการค้นหารหัสต้นฉบับดั้งเดิม
  • อย่างไรก็ตามซอร์สโค้ดที่เสนอมาใด ๆ ที่สร้างชุดเอาต์พุตเดียวกันจะนับว่าถูกต้องตราบใดที่มันยังพบใน OEIS

เคล็ดลับสำหรับตำรวจ

  • ฟังก์ชั่นการค้นหาใน OEIS ใช้งานได้สำหรับคำที่ต่อเนื่องกันเท่านั้นดังนั้นหากคุณต้องการซ่อนลำดับของคุณจากนั้นก็ทิ้งช่องไว้ที่ใดก็ได้
  • เห็นได้ชัดว่าไม่มีวิธีที่จะซ่อนลำดับ ใส่สิ่งนี้ไว้ในใจเมื่อคุณเลือกลำดับ

คะแนนของคุณคือจำนวนไบต์ในรหัสของคุณ

ผู้ชนะจะได้รับการยื่นโดยมีคะแนนต่ำสุดที่ไม่แตกภายใน 7 วัน

เฉพาะผลงานที่โพสต์ในเดือนเมษายน 2559 เท่านั้นที่มีสิทธิ์ได้รับรางวัล ส่งที่โพสต์ช้ากว่านี้จะยินดี แต่ไม่สามารถชนะ

ในการรับสิทธิ์ผู้ชนะคุณต้องเปิดเผยรหัสเต็มและลำดับ OEIS (หลังจาก 7 วัน)

โพสต์ของคุณควรมีรูปแบบดังนี้ (NN คือจำนวนตัวอักษร):


Lua ขนาด 98 ไบต์

เอาท์พุท:

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

รหัส ( #ทำเครื่องหมายตัวอักษรที่ไม่เปิดเผย):

function a(n)
    if ### then
        ########
    else
        ######################
    end
end

หากรหัสแตกให้ใส่[Cracked](link to cracker)ในส่วนหัว หากการส่งนั้นปลอดภัยให้ใส่ "ปลอดภัย" ในส่วนหัวและเปิดเผยรหัสเต็มในคำตอบของคุณ เฉพาะคำตอบที่เปิดเผยรหัสเต็มเท่านั้นที่จะมีสิทธิ์ได้รับรางวัล


2
นอกจากนี้การค้นหา OEIS สามารถมีช่องว่างด้วย_, fyi
Sp3000

9
มันอาจจะสายเกินไปที่จะเปลี่ยนแปลง แต่ช่วยให้ลำดับที่มีหลายรายการลำดับ OEIS และ / หรือรวมเฉพาะทุกระยะที่ n จะได้ทำให้ความท้าทายนี้มากดีกว่า sandbox, hint, hint
Nathan Merrill

6
ยกตัวอย่างเช่นฉันสามารถเลือกลำดับฟีโบนักชีและจัดให้ได้เท่านั้นa(1000)? (ซึ่งเป็นส่วนหนึ่งของลำดับ แต่มีขนาดใหญ่เกินกว่าที่จะค้นหาได้ใน OEIS)
Sp3000

2
ฉันจะบอกว่าค่าต้องสามารถค้นหาได้จริงบน OEIS เพื่อให้สามารถตรวจสอบได้อย่างง่ายดายว่าค่านั้นถูกต้องสำหรับลำดับที่เลือก
Mego

3
"ใจแคบต่อศูนย์" ไม่สมเหตุสมผล นั่นหมายความว่าไง?
feersum

คำตอบ:


11

เป็นกลุ่ม 36 การกดแป้น - ปลอดภัย!

i****<esc>:let @q="^*i****$**@***"<cr><n>@qbD

(หมายเหตุ: <n>เป็นที่ที่คุณพิมพ์อินพุตของคุณ)

นี่คือรหัสที่ไม่เกี่ยวข้องกับการสร้างตัวเลข:

          :let @q="              "<cr><n>@qbD

ความหมายฉันกำลังเปิดเผยตัวละคร 5 จาก 19 ตัว

<n>เป็นอินพุต นี่คือตัวอย่างผลลัพธ์บางส่วน:

1@q:    1
2@q:    3
6@q:    18

ตอบ

รหัสนี้จะพิมพ์ตัวลูคัสเบอร์ ( A000032 ) ซึ่งเป็นเช่นเดียวกับ Fibonnaci ลำดับยกเว้นว่าจะเริ่มต้นในวันแทน2, 1 1, 1นี่คือตัวเลข 15 ตัวแรก:

2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843

นี่คือรหัสเปิดเผย:

i2 1 <esc>:let @q="^diwwyw$pb@-<c-v><c-a>"<cr><n>@qbD

คำอธิบาย:

i2 1 <esc>                          "Insert the starting numbers
          :let @q="....."<cr>       "Define the macro 'Q'

คำอธิบายของแมโคร:

^                      "Move to the first non-whitespace character on the line.
 diw                   "(d)elete (i)nner (w)ord. This is different then 'dw' because it doesn't grab the space. 
                      "It also throws people off since 'i' is usually used for inserting text.
    wyw$               "Move to the next number, yank it then move to the end of the line 
        pb             "(p)aste the yanked text and move (b)ack
          @-     <c-a> "@- is the register holding the word we deleted. Increment the current number that many times.
            <c-v>      "Since we're adding <c-a> this from the command line, we need to type it as a literal.

ตอนนี้เราแค่ต้องลบหมายเลขที่สองเนื่องจากหมายเลขแรกคือหมายเลขลูคัสที่เราต้องการ ดังนั้นเราทำ

b   "move (b)ack
 D  "(D)elete to the end of the line.

นอกจากนี้หากฉันไม่เข้าใจผิดนี่เป็นการส่งที่ปลอดภัยครั้งแรก! มันเยี่ยมมาก


ฉันรู้ลำดับฉันคิดว่า ฉันไม่ทราบวิธีเปลี่ยนเป็นการกดแป้น Vim
Nic Hartley

เอาต์พุตเป็นเพียงตัวเลขหรือทั้งบรรทัด?
ASCIIThenANSI

@ ASCIIThenANSI หลังจากกดปุ่มbDที่จุดสิ้นสุดเอาต์พุตจะมีเพียงหมายเลขเดียวและช่องว่างพิเศษบางส่วน
DJMcMayhem

ฉันได้ลำดับที่ถูกต้อง!
Nic Hartley

8

05AB1E , 5 ไบต์, ปลอดภัย

อันสุดท้ายสำหรับวันนี้: p. เอาท์พุท:

a(0) = 9
a(5) = 4
a(10) = 89

รหัส:

___m_

_ตัวละครที่ยุ่งเหยิงจะแสดงด้วย ลองออนไลน์! ลิงค์ ใช้การเข้ารหัสCP-1252


วิธีการแก้:

žhžm‡

คำอธิบาย:

žh       # Short for [0-9].
  žm     # Short for [9-0].
    ‡    # Translate.

ลองออนไลน์! หรือลองสำหรับกรณีทดสอบทั้งหมด! .


ฉันรู้ลำดับไม่ใช่วิธีการสร้างมันในไม่กี่ไบต์ ...
LegionMammal978

@ LegionMammal978 ใช่ฉันคิดว่ามันจะเป็นส่วนที่ยากที่สุดของอันนี้
Adnan

ฉันสามารถรับมันใน 5 ไบต์ด้วยg°<¹-แต่ฉันไม่สามารถหาวิธีที่จะใช้mขนาดนี้! D:
user81655

@ user81655 ใช่นั่นเป็นทางเลือกอื่น :)
Adnan

6

องค์ประกอบ 7 ไบต์แตก

เอาท์พุท:

a(3) = 111
a(7) = 1111111

#ถูกซ่อนตัวอักษรและพวกเขาทั้งหมด ASCII พิมพ์ ฉันคิดว่าอันนี้ยากจริง ๆ แล้ว (สำหรับการมีเพียง 5 ตัวอักษรหายไป)

###,##}

เพื่อความสะดวกสบายที่นี่ลองมันออนไลน์และวิกิพีเดีย Esolangหน้า


โปรแกรมเดิมของฉันคือ:

_'[,$ ` }

เคล็ดลับก็คือ

]และ}เหมือนกันตามหน้าที่ (ทั้งแปลเป็น}ภาษา Perl) นอกจากนี้ฉันเคย,$สร้าง1ความสับสนอีกชั้นแม้ว่ามันจะเป็นไปได้ที่จะเพิกเฉยต่อสิ่งเหล่านี้,โดยการทำ,1แทน


(ฉันรู้ว่าฉันไม่ควรถาม แต่) คุณแน่ใจหรือไม่ว่าถูกต้อง? โดยเฉพาะอย่างยิ่ง}แทนที่จะเป็น]?
แม่ชีที่รั่ว

@ KennyLau The }ถูกต้องและโปรแกรมของฉัน (เท่าที่ฉันรู้) ทำงานได้ในทุกเวอร์ชันของ Element
PhiNotPi


ฉันคิดว่าการจัดรูปแบบผิดในรหัสต้นฉบับของคุณหรือไม่
Rɪᴋᴇʀ

@EasterlyIrk มันคือ หากคุณรู้วิธีแก้ไขให้เป็นแขกของฉัน
PhiNotPi

5

Jolf 5 ไบต์แตก

เอาท์พุท:

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

ทั้งหมดนี้เป็นสิ่งสำคัญและฉันได้แสดง 1 ใน 5

####x

รหัสเดิม:

mPm$x
mP     cube
  m$   catalan number
    x  input

ลองออนไลน์!



1
สำหรับทุกคนที่สนใจมันเป็นลำดับนี้: oeis.org/A033536
Blue

5

JavaScript (ES7), 10 ไบต์, แคร็ก

เอาท์พุต

f(0) -> 1
f(1) -> -1

รหัส

t=>~t##**#

ทดสอบใน Firefox ทุกคืน รหัสเป็นฟังก์ชั่นที่ไม่ระบุชื่อ อาจเป็นเรื่องง่ายเนื่องจากมีเพียงสามตัวอักษรที่ซ่อนอยู่ แต่อย่างน้อยก็สั้น! : P


รหัสเดิมของฉันคือ:

t=>~top**t

แต่หลังจากเดรัจฉานบังคับรหัสของตัวเองสำหรับการแก้ปัญหาฉันรู้ทันที

t=>~t.x**t(ซึ่งxสามารถเป็นอักขระชื่อตัวแปร)

ยังสามารถใช้ ใช้งานได้เพราะ

ในสเปคโอเปอเรเตอร์ของการยกกำลัง ES7 ดั้งเดิมนั้นโอเปอเรเตอร์นั้นมีความสำคัญต่ำกว่าโอเปอเรเตอร์แบบเอกภาพ (ต่างจากคณิตศาสตร์ทั่วไปและภาษาอื่น ๆ ส่วนใหญ่) ~ดำเนินการในระดับบิตไม่ใช่บนt.x( undefined) หรือtop( Object) ซึ่งมันได้ปลดเปลื้องพวกมันเป็นจำนวนเต็ม 32 บิตที่ลงนาม (ไม่สามารถแปลงได้เช่นนี้กลายเป็น0) ก่อนที่จะทำไม่ (จึง0กลายเป็น-1) ฉันดูเพิ่มเติมเกี่ยวกับเรื่องนี้และเมื่อไม่นานมานี้สเป็คได้เปลี่ยนเป็นไม่อนุญาตการอ้างอิงที่คลุมเครือเช่นนี้ (ไม่ดีสำหรับการเล่นกอล์ฟในอนาคต D:) อย่างไรก็ตามเอ็นจิ้น ES7 ส่วนใหญ่ยังไม่ได้อัพเดตสเป็ครุ่นล่าสุด


1
@insertusernamehere ดูเหมือนว่าจะมีการแสดงออกที่ผิดกฎหมาย มันจะทำงานใน Firefox ทุกคืนแม้ว่า ฉันเดาว่าพวกเขาใช้ข้อมูลจำเพาะ ES7 แตกต่างกัน
user81655

ฉันเพียงแค่ Firefox คืนและฉันต้องบ่นว่านี้ไม่ได้ทำงานที่นั่น หน้าต่างแบบ 32 บิตจากที่นี่
Conor O'Brien

สมมติว่า**เทียบเท่ากับMath.powฉันได้ทำการทดสอบของตัวเองและแม้กระทั่งใช้กำลังดุร้าย นี่เป็นเรื่องยากที่จะถอดรหัส!
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ Firefox ทุกคืนของฉันทันสมัยแล้วเมื่อวาน ฉันใช้ OS X แต่ฉันค่อนข้างแน่ใจว่ามันจะทำงานบน Windows ได้เช่นกันTraceurพร้อมตัวเลือก ES7 ที่เหมาะสมเปิดใช้งาน transpiles ได้อย่างถูกต้องเช่นกัน
user81655

@ CᴏɴᴏʀO'Bʀɪᴇɴแค่ลองใช้ Windows 32 บิตจากลิงค์ของคุณแล้วก็ใช้งานได้ ฉันประหลาดใจที่การค้นหากำลังดุร้ายของคุณไม่สามารถทำได้ ที่จริงฉันเพิ่งรู้ว่ามีวิธีแก้ปัญหานี้มากมาย! D:
user81655

4

05AB1E, 4 ไบต์ ( แตกแล้ว )

ตัวอย่างผลลัพธ์:

a(5) = 51
a(8) = 257

และสำหรับรหัส:

###^

ฉันเปิดเผยอันสุดท้าย ควรจะง่ายพอ แต่ฉันค่อนข้างยากที่จะหาลำดับ :(

อักขระที่ซ่อนอยู่ทั้งหมดสามารถพิมพ์ได้



4

MATL , 5 ไบต์แตก

ตัวอักษรที่ซ่อนอยู่จะถูกระบุด้วย %ตัวอักษรที่ซ่อนอยู่จะมีการแสดง

%5%*%

เอาท์พุท:

a(1) = 3
a(2) = 6
a(4) = 12

อินพุต 0ถูกต้อง


รหัสเดิม:

35B*s

นั่นคือ,

35    % push number 35
B     % convert to binary: array [1 0 0 0 1 1]
*     % multiply element-wise by implicit input n: gives [n 0 0 0 n n]
s     % sum of array: gives 3*n

2
อืมรหัสห้าตัวน่ารำคาญมาก!
Adnan

ในทางเทคนิคแล้วโปรแกรมนี้อาจถูกบังคับโดยสัตว์เดรัจฉาน ... แต่ฉันจะไม่ทำอย่างนั้น
แม่ชีที่รั่ว



4

ทับทิมขนาด 46 ไบต์ปลอดภัย

แก้ไขเพื่อเพิ่มข้อจำกัดความรับผิดชอบ / คำขอโทษ: ลำดับนี้เริ่มต้นด้วย f [0] ในขณะที่รายการ OEIS เริ่มต้นด้วย f [1] ค่าเหมือนกัน

รหัสที่ยุ่งเหยิง ( #เป็นอักขระใด ๆ ):

->####or x##1###(#..##0#);x*=3;end;#.###ect:+}

โทรเหมือน

->####or x##1###(#..##0#);x*=3;end;#.###ect:+}[3] (returns 39)

เอาท์พุท:

f[0] = 0
f[1] = 3
f[2] = 12
f[3] = 39
f[4] = 120
f[5] = 363
f[6] = 1092
f[7] = 3279
f[8] = 9840
f[9] = 29523

วิธีการแก้:

f=->*x{for x[-1]in(0..x[0]);x*=3;end;x.inject:+}

ลำดับ:

http://oeis.org/A029858

คำอธิบาย:

เคล็ดลับเล็ก ๆ น้อย ๆ ที่นี่คือที่เราประกาศพารามิเตอร์มากกว่า*x xซึ่งหมายความว่าถ้าคุณผ่านใน2, xมีการตั้งค่า[2]... ในตอนแรก ที่สำคัญเคล็ดลับการหาประโยชน์ที่แปลกประหลาดและปิดบังความยุติธรรมไวยากรณ์ทับทิมที่คุณสามารถตั้ง iterator ในการวนไปทางด้านซ้ายมือที่ถูกต้องของการแสดงออกที่ได้รับมอบหมายแทนตัวแปร iterator iเช่น ดังนั้นสิ่งนี้จึงวนซ้ำจาก 0 ถึง (ในตัวอย่างนี้) 2 กำหนดแต่ละหมายเลขให้x[-1]ซึ่งหมายความว่ามันเขียนทับค่าสุดท้ายของ x จากนั้นตัวลูปx*=3จะเปลี่ยนค่า x อีกครั้งโดยต่อเข้ากับตัวเอง 3 ครั้ง ดังนั้นก่อนจะกลายเป็น x แล้ว[0] [0,0,0]วงต่อไปมันจะกลายเป็น[0,0,1] [0,0,1,0,0,1,0,0,1]แล้วในที่สุดเราก็ผ่านใน 2 และมันจะกลายเป็น[0,0,1,0,0,1,0,0,2]แล้ว[0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 2]. จากนั้นเราจะสรุปผลโดยใช้injectวิธีการซึ่งจะช่วยลดอาร์เรย์โดยใช้+(วิธีการส่งผ่าน) กับแต่ละองค์ประกอบในทางกลับกัน หากเราพิจารณาว่าการวนซ้ำแต่ละครั้งจะเปลี่ยนแปลงผลรวมอย่างไรเราจะเห็นว่าเราเพิ่ม 1 อย่างมีประสิทธิภาพ (โดยการเขียนทับองค์ประกอบสุดท้ายด้วยองค์ประกอบหนึ่งที่สูงกว่า) จากนั้นคูณด้วย 3 เนื่องจาก3*(n+1) = 3*n + 3การดำเนินการนี้เกี่ยวข้องกับการกำเริบของ Alexandre Wajnberg ตามลำดับ หน้า.


ฉันชอบตำรวจของคุณที่นี่อันนี้โดยเฉพาะอย่างยิ่ง ทำได้ดี.
ไม่ใช่ว่า Charles


3

Hexagony , 7 ไบต์, แตก

เอาท์พุท:

a(1) = 2
a(2) = 4

รหัสที่ซ่อนอยู่:

?#####@

หรืออีกทางหนึ่ง:

 ? #
# # #
 # @

ลองใช้งานออนไลน์อาจมีประโยชน์



เอ๊ะเดี๋ยวก่อนโค้ดของคุณใช้ได้กับอินพุต0หรือไม่
Martin Ender

@ MartinBüttnerโอ้มันไม่ได้แย่ขนาดนั้น ทางออกของคุณเป็นสิ่งที่ถูกต้อง
Adnan

3

PHP, 41 ไบต์, ถอดรหัส

ใช่ในที่สุดตำรวจและโจรอีกคนท้าทาย หวังว่าฉันจะไม่ทำให้ง่ายขึ้น

เอาท์พุต

a(5)   = 0
a(15)  = 1
a(35)  = 0
a(36)  = 1
a(45)  = 1

แหล่ง

____________________$argv[1]____________;
####################        ############

หมายเหตุ

  • มันเป็นโปรแกรมเต็มรูปแบบไม่ใช่ฟังก์ชั่น
  • อ่านอินพุตจากบรรทัดรับคำสั่ง (ชัด)
  • ไม่ได้มีแท็กเปิด PHP

Cracked

เห็นได้ชัดว่าฉันทำให้มันง่ายและให้ตัวอย่างที่ไม่เพียงพอ ลำดับที่ฉันมีในใจคือA010054 :

a (n) = 1 ถ้า n เป็นจำนวนสามเหลี่ยมอื่น 0

นี่คือรหัสต้นฉบับดั้งเดิมของฉัน:

echo(int)($r=sqrt(8*$argv[1]+1))==$r?1:0;

มันทดสอบว่าการป้อนข้อมูลเป็นจำนวนสามเหลี่ยมและเอาท์พุท1หรือ0ตาม



3

Jolf, 11 ไบต์, แคร็ก , A011551

c*______x__

c*mf^+91x~P

รหัสเดิม:

c*^c"10"x~P

ตัวอย่าง:

0 -> 1

12 -> 1618033988749

Cracked
Adnan

@Adnan ทำได้ดี แต่แตกต่างจากของฉัน และคุณไม่สามารถเข้าใจ op ก่อนได้ : P
Rɪᴋᴇʀ

ใช่ฉันไม่สามารถคิดออกว่ามันทำอะไร: p
Adnan

@Adnan มันเป็นฟังก์ชั่นการหล่อใช้งานผิดชั้นเหมือนกัน
Rɪᴋᴇʀ


3

Java, 479 ไบต์, แคร็ก

ขาออก:

a(10) = 81
a(20) = 35890

(อินพุตมีให้ผ่านอาร์กิวเมนต์บรรทัดคำสั่ง)

รหัส ( #ทำเครื่องหมายตัวอักษรที่ซ่อนอยู่):

import java.util.*;
public class A{

    public static int#########
    public boolean###########

    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; ################if(##>##{
            ###########d#
            #######+##p##########+##########(#######
        }

        System.out.println(#########################
            ###(A.#############(#5#####)));
    }
}

โปรแกรมเริ่มต้นที่ดัชนี 0

(โปรดทราบว่า SE แทนที่การ\tเยื้องทั้งหมดด้วย 4 ช่องว่างทำให้จำนวนไบต์รวมเป็น 569 คลิกที่นี่เพื่อดูโปรแกรมด้วย\tเยื้องแทนการเยื้องช่องว่าง)

รหัสเดิม:

import java.util.*;
public class A{
    public static interface B{
    public boolean C(int i);} 

    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++)cif(i->  {
            return l.add(
            l.pop()+l.peekFirst()+l.peekLast());});{    
        }

        System.out.println(l.get(1));}static boolean 
            cif(A.B b5){return (b5.C((0)));
    }
}

(รหัสเดียวกัน แต่จัดรูปแบบตามปกติ):

import java.util.*;

public class A {
    public static interface B { //functional interface for lambda expression
        public boolean C(int i); //void would have given it away
    }

    static A a = new A(); //distraction

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

        LinkedList<Integer> l = new LinkedList<>();
        l.add(1);//Set up list
        l.add(0);
        l.add(0);

        for (int ix = 0; ix < input; ix++)
            cif(i -> { //Fake if statement is really a lambda expression
                return l.add(l.pop() + l.peekFirst() + l.peekLast());
            });
        { //Distraction
        }

        System.out.println(l.get(1));//Output
    }

    static boolean cif(A.B b5) { //Used to pass in lambda expression.
                  //The A. and b5 were both distractions
        return (b5.C((0)));
    }
}

หืมทำไมคุณถึงจำนวนไบต์ที่ 488 ฉันนับ 545 จากiถึง}? และโปรดระบุ 0-tolerance
แวมไพร์

ไม่ใช่ตัวอย่างของคุณa(9)และa(19)หรือa(8)และและa(18)คุณใช้เวอร์ชั่นใดใน OEIS?
แวมไพร์

@ BjörnKautlerฉันจะโพสต์ลิงก์ไปที่เคาน์เตอร์ไบต์เมื่อกลับถึงบ้าน คุณหมายถึงอะไรโดยความอดทน 0 ค่าแรกคือ (1) = 0
Daniel M.

จาก OP: "งานของตำรวจคือการเขียนโปรแกรม / ฟังก์ชั่นที่รับจำนวนเต็มบวก (หรือไม่ใช่ลบ) และเอาท์พุท / ส่งกลับจำนวนเต็มอื่นตำรวจต้องระบุว่าโปรแกรมนั้นทนต่อศูนย์หรือไม่" ดังนั้นฉันเดาว่าคุณรับอินพุต 1 เป็น 0 และนี่ยังอธิบายการเปลี่ยนแปลงของตำแหน่งตามลำดับ OEIS
แวมไพร์

@ BjörnKautlerตกลงขอบคุณ โปรแกรมจะไม่หยุดทำงานหากมีการป้อน 0 แต่ลำดับเริ่มต้นที่ดัชนี 1 ดังนั้นฉันเดาว่ามันเป็นศูนย์ที่ทนไม่ได้
Daniel M.


3

C, 71 ไบต์แตก

############
#####
main(){
 scanf("%d",##);
 ###6#;
 printf("%d",##);
}

เอาท์พุท:

a(1) = 0   a(2) = 0   a(5) = 1
a(6) = 1   a(7) = 1   a(9) = 2

ใช้งานได้กับ gcc และเป็นโปรแกรมเต็มรูปแบบ ยอมรับ 0 เป็นอินพุต



ฉันควรเปิดเผยตัวละครมากขึ้น ฉันโพสต์ข้อความอื่นและพยายามหลีกเลี่ยงการเรียกใช้ฟังก์ชัน codegolf.stackexchange.com/a/77583/52554
mIllIbyte

3

Pyth, 70 ไบต์, แคร็ก

DhbI|qb"#"qb"#"R!1Iqb"#"#####+""s####2###;##lY+Q1Ih+""Z#####)=Z+Z1;@YQ

# เป็นตัวละครที่ซ่อนอยู่

แตกแล้วดังนั้นนี่คือ versionn โดยไม่มีตัวอักษรที่ซ่อนอยู่:

DhbI|qb"4"qb"0"R!1Iqb"1"R!0Rh+""sm^sd2cb1;W<lY+Q1Ih+""Z=Y+YZ)=Z+Z1;@YQ

ตัวอย่างผลลัพธ์:

a(2) -> 10
a(4) -> 19

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


Cracked
Adnan

3

ทับทิม 38 ไบต์ แตก

รหัสที่ยุ่งเหยิง ( #สามารถเป็นอักขระใดก็ได้):

->#{(s=#########).sum==#3333&&eval(s)}

เอาท์พุท:

คูณอินพุตด้วย 10 (A008592) ใช้งานได้กับจำนวนเต็มใด ๆ รวมถึง 0 เช่น

->#{(s=#########).sum==#3333&&eval(s)}[3]  => 30
->#{(s=#########).sum==#3333&&eval(s)}[10] => 100



3

05AB1E , 4 ไบต์,แคร็ก

ถ้าอย่างนั้นฉันคิดว่าฉันติดกับ CnR ของ ... รหัสที่ทำให้งงงวย ( _ระบุว่าเป็นไวลด์การ์ด):

____

ลำดับ:

a(1) = 2
a(4) = 6720

ลำดับใน OEISเริ่มต้นที่ (1) = 2

ลองออนไลน์! ลิงค์



3

Lua 45 ไบต์ แตกแล้ว

คำใบ้เล็ก ๆ :

a(0) will make the program crash :)

เอาท์พุต

a(1)=>0
a(2)=>1

รหัส

ใช้#เพื่อซ่อนรหัส :)

a=function(n)#####n###### and #or ########end

ฉันใช้ OEIS A007814ด้วยรหัสต่อไปนี้:

a=function(n)return n%2>0 and 0or 1+a(n/2)end


@ KennyLau ทำได้ดีมากฉันได้เพิ่ม OEIS ที่ฉันคิดและรหัสที่ตั้งใจไว้ฉันควรเพิ่มเอาท์พุทอย่างน้อยหนึ่งรายการเพื่อป้องกันสิ่งนี้ให้เกิดขึ้น: p
Katenkyo

3

Pykeขนาด 15 ไบต์ปลอดภัย

เอาท์พุต

a(2) = 21
a(15) = 17

เปิดเผยรหัส:

#R#D######+##)#

วิธีการแก้:

OEIS A038822
wR}DSR_Q*L+#P)l
ฉันใช้ปลาเฮอริ่งแดงสองตัวที่นี่โดยใช้wR}เพื่อสร้างหมายเลข 100 และเปิดเผยตัวละครRซึ่งปกติแล้วจะใช้เพื่อหมุนสแต็ก ฉันยังใช้#P)lแทนจำนวนที่ง่ายกว่าmPsเพื่อนับจำนวนช่วงในลำดับ


ลำดับในคำถามเริ่มต้นจาก n = 1 ไม่ใช่ n = 0 โดยวิธี
บลู

ฉันคิดว่ามันเป็นลำดับนั้นยกเว้นมันเริ่มต้นที่ n = 0 และไม่ใช่ n = 1 ตามที่คุณระบุ
Emigna

3

C, 82 ไบต์ปลอดภัย

####=############
main(i){scanf("%d",##);
for(i=1;i++/4<#;)##=2;
printf("%d",##);}

ทำงานร่วมกับ gcc และเป็นโปรแกรมแบบเต็มซึ่งอ่านอินพุตจาก stdin และพิมพ์เอาต์พุตไปยัง stdout นี่คือลำดับA004526 ชั้น (n / 2)

a(0) = 0    a(1) = 0    a(2) = 1
a(3) = 1    a(4) = 2    a(5) = 2
a(6) = 3    a(7) = 3    a(8) = 4

วิธีการแก้:

a;*b=(char*)&a+1;
main(i){scanf("%d",&a);
for(i=1;i++/4<2;)a*=2;
printf("%d",*b);}

สิ่งนี้ใช้ได้กับเครื่องจักร endian เพียงเล็กน้อยเท่านั้นและถ้าขนาดของchar1 ไบต์
และถ้าหากไบต์สูงกว่าลำดับสูงสุดของaมีค่า 0 ฉันคิดว่านี่เป็นความจริงสำหรับ gcc เนื่องจากโดยค่าเริ่มต้นตัวแปรทั่วโลกที่ไม่ได้กำหนดค่าเริ่มต้นจะเข้าสู่ส่วน bss และตัวแปรเริ่มต้นทั่วโลกเข้าสู่ส่วนข้อมูล (ดูhttps: // stackoverflow.com/questions/8721475/if-a-global-variable-is-initialized-to-0-will-it-go-bss )
ดังนั้นaเข้าสู่ bss เท่านั้น (ตัวแปรโกลบอลอื่นเท่านั้นที่bถูกเตรียมข้อมูลเบื้องต้นและเข้าสู่เซ็กเมนต์ข้อมูล) หากaไม่ได้อยู่ที่จุดสิ้นสุดของ bss ดังนั้นไบต์ที่สูงกว่าไบต์คำสั่งซื้อสูงสุดของaจะอยู่ใน bss ด้วยเช่นกันจึงมีค่า 0


ลองโทรออกฟังก์ชั่นทันที :)
mIllIbyte

1
ฉันไม่คิดว่าคุณจะต้องระบุลำดับ ...
FliiFe

@FliiFe - แก้ไข :)
mIllIbyte


2

องค์ประกอบ 10 ไบต์แตก

เอาท์พุท:

a(3) = 6561
a(4) = 4294967296

อาจมีเพียงไม่กี่วิธีในการคำนวณลำดับนี้ในองค์ประกอบ ฉันพบโซลูชัน 9 ถ่าน แต่ฉันคิดว่าโซลูชัน 10 ถ่านนี้ยากกว่าจริงๆ #ตัวอักษรที่ซ่อนอยู่

#_####@^#`

เพื่อความสะดวกสบายที่นี่ลองมันออนไลน์และวิกิพีเดีย Esolangหน้า


ต้นฉบับเดิมคือ

2_3:~2@^^`

แสดงอีกหนึ่งไบต์
Leun Nun

@KennyLau ฉันคิดว่ามันเป็น 1 ใน 5 หรือไม่ มันคือ 10 ไบต์และฉันกำลังแสดง 3.
PhiNotPi

อินพุตและเอาต์พุตไม่นับเพื่อให้คุณมี 8 ไบต์และคุณแสดงให้เห็นว่า 1.
รั่วนูน

@KennyLau เสร็จแล้ว
PhiNotPi


2

Pyth , 18 ไบต์

# ทำเครื่องหมายตัวอักษรที่ไม่เปิดเผย

L?Jtb##5#m##S#2 #y

เอาท์พุท (เริ่มต้นจาก1):

1 -> 2
2 -> 3
3 -> 5
4 -> 7

ล่ามออนไลน์


ใช่มั้ย ถ้าไม่ใช่ ...
บลู

ถ้าไม่ ... อะไร
แม่ชีที่รั่ว

ถ้าอย่างนั้นฉันก็ไม่รู้
Blue

2

05AB1E , 5 ไบต์, แคร็ก

ฉันหวังว่าการส่งนี้จะไม่ง่ายอย่างที่คนอื่น ๆ ของฉัน: p ขาออก:

a(0) = 0
a(1) = 1
a(2) = 6
a(3) = 24
a(4) = 80
a(5) = 240

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

####O

มีอักขระบางตัวที่ไม่ใช่ ASCII ซึ่งใช้ การเข้ารหัสCP-1252

ลองออนไลน์! อาจมีประโยชน์: p.



ทำไมฉันถึงรู้สึกเหมือนเคยเห็นมาก่อน
Leun Nun

@KennyLau ¯ \ _ (ツ) _ / ¯
Adnan

2

Jolf 11 ไบต์แคร็ก Cracked

เอาท์พุท:

a(10) = 4
a(20) = 6
a(30) = 8

และรหัสที่ซ่อนอยู่บางส่วน:

####xd###x#

คำแนะนำ:

เมื่อฉันดูลำดับต่างๆฉันไม่ได้ไปไกลนักก่อนจะพบสิ่งนี้

เวอร์ชั่นที่ถอดรหัสแล้วนั้นไม่เหมือนกับรหัสต้นฉบับของฉันเลย ตอนนี้ฉันไม่ได้อยู่ที่คอมพิวเตอร์ของฉันดังนั้นฉันไม่มีมันอย่างแน่นอน แต่มันก็เป็นอย่างนี้:

l fzxd!m%xH

(ส่วนเดียวที่ฉันไม่แน่ใจเกี่ยวกับคือ!mมันเป็นสิ่งที่ตรวจสอบว่าตัวแปรเป็นศูนย์)


ฉันพบลำดับ ... น่าเสียดายที่ฉันไม่รู้จัก Jolf หรือ javascript ได้ดีมาก :(
บลู

@muddyfish เหมือนกันที่นี่ ...
LegionMammal978

ฉันเดาว่าถึงเวลาแล้วที่อาจารย์จะต้องทำ ... ขอฉันได้ไหม
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴหากคนอื่นนิ่งงัน - และดูเหมือนว่าพวกเขาเป็น - รู้สึกฟรี
Nic Hartley


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.