รหัสคำในลำดับเลขจำนวนเต็ม


15

บทนำ

Pareidolia : จากกรีกโบราณ; παρα ( para ,“ พร้อมกัน, ข้าง”) + εἴδωλον ( eídōlon ,“ image”) แนวโน้มที่จะตีความสิ่งเร้าที่คลุมเครือนั้นเป็นสิ่งที่ผู้สังเกตการณ์รู้จักเช่นการตีความเครื่องหมายบนดาวอังคารว่าเป็นคลองการมองเห็นรูปร่างในเมฆหรือได้ยินข้อความที่ซ่อนอยู่ในเพลง ที่มา: วิกิพีเดีย

ตัวอย่างเช่น:

ป้อนคำอธิบายรูปภาพที่นี่

Paralogia : จากกรีกโบราณ; παρα ( para ,“ พร้อมกัน, ข้าง”) + λόγος ( lógos ,“ คำพูด, คำปราศรัย, คำ, ... ”) แนวโน้มที่จะเข้าใจคำศัพท์ในลำดับของอักขระเช่นในโปรแกรมรหัสกอล์ฟ ที่มา: ใช่ฉันทำมันขึ้นมา (จริงๆแล้วคำหมายถึงอย่างอื่นตามที่ @Martin ชี้ให้เห็น)

ตัวอย่างเช่น:

    df4$/H)hEy_^p2\
    jtK2$)look|x1$

ท้าทาย

เขียนโปรแกรมที่รับจำนวนเต็มบวกเป็นอินพุตสร้างจำนวนเต็มเป็นผลลัพธ์และรวมคำภาษาอังกฤษเป็นส่วนหนึ่งของรหัส ความสัมพันธ์อินพุทจะต้องสอดคล้องกับลำดับจำนวนเต็มที่สามารถพบได้ในOEIS

กฎระเบียบ

  • อนุญาตเฉพาะคำจากรายการนี้ สิ่งนี้เป็นสิ่งที่ยอมรับโดยพลการ แต่เป็นสิ่งสำคัญที่เราทุกคนเห็นด้วยกับคำที่ยอมรับได้ และในเรื่องนั้นรายการนี้อาจจะดีเหมือนกัน
  • คำต้องถูกสร้างขึ้นโดยการต่อชื่อฟังก์ชันหรือข้อความสั่งอย่างน้อยสองรายการ หากภาษาของคุณมีฟังก์ชันที่เรียกว่าcorrelationไม่สามารถใช้งานได้ การต่อข้อมูลจะต้องเข้มงวด: ไม่ควรมีสัญลักษณ์อื่นใดปรากฏระหว่างส่วนต่างๆของคำ ตัวอย่างเช่นbro~kenจะไม่นับเป็นคำ
  • เคสไม่สำคัญ: ทั้งสองvalidและvaLiDยอมรับได้
  • คำภายในสตริงจะไม่ถูกนับ ตัวอักษรที่ทำขึ้นจำเป็นต้องมีคำว่าจะเป็นฟังก์ชั่นหรือข้อความในภาษาของทางเลือกนั่นคือสิ่งที่เป็นจริงดำเนินการ ตัวอย่างเช่นรหัสต่อไปนี้จะไม่ได้รับอนุญาต: 'deoxyribonucleic'~1ที่'...'เป็นสตริง~ทิ้งเนื้อหาก่อนหน้านี้และเพียงแค่พิมพ์ตัวเลข11
  • ตัวอักษรของคำทุกคนควรจะจำเป็น ซึ่งหมายความว่าการลบตัวอักษรตัวเดียวออกจากคำควรเปลี่ยนความสัมพันธ์อินพุต - เอาท์พุต ซึ่งรวมถึงการส่งออกลำดับที่แตกต่างกันหรือการส่งออกสิ่งอื่นใดหรือผลิตผลไม่ออกหรือก่อให้เกิดข้อผิดพลาด
  • จำนวนเต็มบวกใด ๆควรยอมรับได้ในฐานะอินพุตและควรสร้างเอาต์พุตยกเว้นข้อ จำกัด ชนิดข้อมูลหรือหน่วยความจำ
  • ผลที่สอดคล้องกับปัจจัยการผลิต1, 2, 3... ควรสอดคล้องกับลำดับปรากฏในOEIS ไม่ควรสร้างเอาต์พุตอื่น เฉพาะตัวเลขจำนวนเต็มอาจมีการต่อท้ายหรือนำช่องว่าง
  • อินพุตและเอาต์พุตสามารถเป็นอาร์กิวเมนต์ของฟังก์ชันหรือ stdin / stdout

คะแนน

คะแนนจะคำนวณตามความยาวรหัสทั้งหมดลบด้วยความยาวของคำที่ยาวที่สุดเป็นสองเท่าของตัวอักษร หรือเท่ากันจำนวนอักขระที่ไม่ได้อยู่ในคำที่ยาวที่สุดลบด้วยความยาวของคำที่ยาวที่สุด

คะแนนต่ำสุดชนะ

ตัวอย่าง

พิจารณาภาษา postfix ในจินตนาการที่มีฟังก์ชันเหล่านี้c:: ใส่ตัวเลข; At: คำนวณกำลังสอง $: เพิ่ม 1

cAtจะเป็นโปรแกรมที่ถูกต้อง (สอดคล้องกับการส่งออกไปยังลำดับ1, 4, 9, ... , ซึ่งเป็นA000290 ) และมันจะมีคะแนน -3

cAt$นอกจากนี้ยังจะถูกต้อง (ลำดับ2, 5, 10, ... , ซึ่งเป็นA002522 ) ด้วยคะแนน -2

c$At จะไม่ถูกต้องเพราะคำเดียวที่นี่คือ "At" และผลิตโดยฟังก์ชั่นหรือคำสั่งเดียว


ฉันคิดว่านี่ควรเป็นการประกวดความนิยม
MCMastery

5
@MCMastery การประกวดนี้จะไม่ได้รับความนิยมอย่างมาก (ความท้าทายส่วนใหญ่จะไม่เกิดขึ้น)
อเล็กซ์ A.

นี่เป็นข้อ จำกัด สำหรับภาษากอล์ฟ
ericw31415

คำตอบ:


11

CJam, -20

COUNTErREVOLUTIONARIES],

ขาออกองค์ประกอบที่ n ในลำดับA010861

COUNTE                      e# push values of six preinitialized variables
      r                     e# read a token of input
       REVOLUTIONARIES      e# push values of 15 other preinitialized variables
                      ]     e# wrap whole stack in array
                       ,    e# get length

การถอดตัวอักษรจากผลการคำในลำดับที่แตกต่างอย่างสิ้นเชิงA010860 มีความสัมพันธ์ที่น่าสนใจระหว่างสองซีเควนซ์คือ: ในทุก ๆ ดัชนี n, A010860(n)เป็น coprime ถึงA010861(n)! จะต้องมีเหตุผลทางคณิตศาสตร์ที่ลึกกว่านี้

ลองมันนี่


1
ฉันได้ค้นพบความสัมพันธ์ทางคณิตศาสตร์ที่น่าสงสัยอีกอย่างหนึ่ง: ถ้าคุณลบลำดับ A010860 จากลำดับ A010861 ผลลัพธ์จะเท่ากับ 1 ในทุกดัชนีเสมอ! ที่น่าสนใจ ...
Doorknob

คนนี้ยากที่จะเอาชนะ :-)
Luis Mendo

โอ้ตัวพิมพ์ใหญ่ .. ความคิดที่ดี :)
Martin Ender

10

CJam, -5

limpet;

A010051 : พิมพ์0สำหรับหมายเลขคอมโพสิตและ1เฉพาะช่วงเวลา

ฉันใช้เวลาตลอดไปในการค้นหาสิ่งที่ได้คะแนนไม่กี่คะแนน การลบสิ่งใดก็ตามยกเว้นmข้อผิดพลาดและการลบmจะเปลี่ยนโปรแกรมให้เป็นฟังก์ชันตัวตน

li  e# Read input and convert to integer.
mp  e# Check for primality.
et  e# Get current datetime as a list.
;   e# Discard the datetime again.

ลองออนไลน์


ทางเลือกที่สวยงามของลำดับ! :-)
Luis Mendo

8

05AB1E , -4 -11

รหัสพิมพ์A010869 (ค่าคงที่ 30):

ASYNcHRonouSlyI)g

รหัสก่อนหน้า:

DoGS

คำอธิบาย:

D     # Duplicate top of the stack
 o    # Pop a, push 2**a
  G   # For N in range(1, 2**a):
   S  # Push all chars seperate from the top of the stack

พิมพ์ลำดับA010879


นั่นเป็นลำดับที่น่าสนใจที่สุด!
Luis Mendo

2
การตัดออก -4 ยังคงเป็นปกติ -4; (
ETHproductions

6

MATL , −6

INhale

ลองออนไลน์!

ผลิตลำดับ1, 2, 3... ( A000027 )

การลบตัวอักษรใด ๆ เปลี่ยนผลลัพธ์หรือออกจากโปรแกรมโดยคาดว่าจะมีอินพุตที่สองซึ่งไม่มีอยู่หรือก่อให้เกิดข้อผิดพลาด

คำอธิบาย

โปรแกรมจะสูดดมตัวเลขและหลังจากที่เล่นซอไปแล้วก็ช่วยให้หายใจไม่ออก

I    % produces number 3
N    % number of elements in stack: produces number 1
h    % concatenates horizontally into array [3, 1]
a    % true if any element is nonzero. So it gives true (or equivalently 1)
l    % produces number 1
e    % triggers implicit input and reshapes into a 1x1 array. So it leaves input unchanged

5

Pyth, 1

*QhSatan0000
   Satan

คำอธิบาย?

       n00   - 0 != 0 (0) 
      a   0  - abs(^-0) (0, Required so it doesn't print out a random 0)
     t       - ^-1 (-1, required or will output 0 all the time)
    a      0 - abs(^-0) (1, Required so counts in right direction, would also print out a random 0)
   S         - 1-indexed range ([1], required so next command works properly)
  h          - Get the head (if `S` missed, will out 2)
*Q           - Multiply by Q

1, 2, 3, 4, 5 ...

ลำดับ A000027

ข้อความอ่อนเกิน? ไม่เคย

ลองที่นี่


4

Japt, -6

NuLLIFIED)r^

เอาท์พุทA004453 : nimsum ของ N และ 12 (N XOR 12) ทดสอบออนไลน์!

หมายเหตุ: ลำดับ OEIS เป็นดัชนี 0 ดังนั้นอินพุต 0 จะส่งผลให้เกิดรายการแรก

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

        // Implicit: N = array of inputs
Nu      // Push the following things to N:
LLIF    // 100, 100, 64, 15,
IED     // 64 again, 14, and 13.
)r^     // Reduce by XORing (using ^ between each pair)
        // The reduction goes as follows: U, U^100, U, U^64, U^79, U^15, U^1, U^12.

ดี! คำอธิบายใด ๆ เมื่อคุณสามารถ?
Luis Mendo

@ LuisMendo แน่นอนทำ มันเรียบง่ายอย่างเหลือเชื่อ แต่ฉันยังไม่พบอะไรที่ซับซ้อนอะไรอีกแล้ว
ETHproductions

@LuisMendo อัพเดตแล้ว คนนี้น่าสนใจกว่านี้เล็กน้อย
ETHproductions

แน่นอน! แต่เห็นได้ชัดว่าการลบการYผลิตผลผลิตเดียวกันหรือไม่ (ยกเว้นว่าฉันกำลังทำอะไรผิดพลาด)
Luis Mendo

@Luis นี้ดีขึ้นหรือไม่
ETHproductions

3

Headsecksคะแนน −4

exit

แผนที่นี้ไปยังโปรแกรม brainfuck ,+-.ซึ่งอ่านตัวอักษรตัวเดียวและพิมพ์มันคำนวณA000030 การลบตัวละครใด ๆ จะทำให้แตกหัก

นอกจากนี้ยังมีmarshal( ,-<>+-.) ซึ่งมีประสิทธิภาพ,-.แต่ไม่สอดคล้องกับลำดับ OEIS ใด ๆ


2

รหัสเครื่อง x86 คะแนน -4

Hexdump ของรหัส:

53 51 55 41 53 68 69 65 73 74 51 58 83 c4 14 c3

หรือในรหัสหน้า 437 :

SQUAShiestQXâ─¶├

รหัสการประกอบ:

push ebx
push ecx
push ebp
inc ecx
push ebx
push 0x74736569
push ecx
pop eax
add esp, 0x14
ret

ฟังก์ชั่นที่เพิ่ม 1 ถึงอาร์กิวเมนต์

การลบAจะเปลี่ยนเป็นฟังก์ชันตัวตน การลบไบต์อื่น ๆ ทำให้สแต็กทำให้เกิดความผิดพลาดหรือพฤติกรรมที่ไม่ดีของฟังก์ชั่นการโทร

ฉันค่อนข้างมั่นใจว่าเป็นไปได้ที่จะปรับปรุงคะแนน แต่อาจขึ้นอยู่กับการตีความข้อกำหนด ตัวอย่างเช่นการใช้คำSQUEAMIShnessให้โปรแกรมที่เพิ่มขึ้นและจากนั้นลดลงebpทะเบียน การลบสิ่งเหล่านี้ทำให้เกิดความผิดพลาดหรือไม่? โปรแกรมทดสอบที่ง่ายที่สุดไม่ได้ใช้การebpลงทะเบียนดังนั้นอาจจะไม่ ... เพื่อหลีกเลี่ยงข้อสงสัยนี้ฉันใช้คำที่สั้นกว่านี้



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