คำอธิบายไบนารีแบบเรียกซ้ำ
เร็ว ๆ นี้ผมทำผลงานแรกของฉันที่จะ OEIS โดยการขยายและเพิ่มเป็นขแฟ้มลำดับA049064 ลำดับเริ่มต้นด้วย0จากนั้นค่าถัดไปจะได้รับจากการให้ "คำอธิบายไบนารี" ของรายการสุดท้าย
ตัวอย่างเช่นเทอมที่สองจะเป็น10เพราะมีหนึ่ง0ในองค์ประกอบแรก ระยะที่สามจะเป็น1110เพราะมีผู้หญิงคนหนึ่งและเป็นหนึ่งใน1 ที่สี่จะเป็น0 11110เพราะมีสาม( 11ในไบนารี!) และหนึ่ง1 0ด้านล่างคือการแยกคำที่ห้าเพื่อทำให้กระบวนการนี้ชัดเจน:
> 11110
> 1111 0 (split into groups of each number)
> 4*1 1*0 (get count of each number in each group)
> 100*1 1*0 (convert counts to binary)
> 100110 (join each group back together)
และนี่คือตัวอย่างของการไปจากเทอมที่ 6 ถึงที่ 7:
> 1110010110
> 111 00 1 0 11 0
> 3*1 2*0 1*1 1*0 2*1 1*0
> 11*1 10*0 1*1 1*0 10*1 1*0
> 111100111010110
คุณสามารถตรวจสอบโปรแกรมการอ้างอิงφฉันทำในการคำนวณเงื่อนไข
งานของคุณ
คุณจำเป็นต้องสร้างโปรแกรมหรือฟังก์ชั่นที่รับจำนวนnผ่านการป้อนค่ามาตรฐานหรืออาร์กิวเมนต์ของฟังก์ชั่นและพิมพ์ลำดับจาก1stเทอมเป็น(n+1)thเทอมโดยคั่นด้วย newline หากคุณต้องการดูตัวเลขที่ต่ำกว่าคุณอาจอ้างถึง b-file จากหน้า OEIS อย่างไรก็ตามโปรแกรม / ฟังก์ชั่นของคุณควรรองรับ0 <= n <= 30ได้สูงสุด 31 เทอม นี้จะไม่มีฝีมือขนาดเล็กขณะที่A049064(30)มีมากกว่า 140,000 ตัวเลขยาวδ หากคุณต้องการที่จะเห็นสิ่งที่ระยะ 31 ควรจะเป็นผมเคยวางไว้บนPastebin
ตัวอย่าง I / O
func(10)
0
10
1110
11110
100110
1110010110
111100111010110
100110011110111010110
1110010110010011011110111010110
1111001110101100111001011010011011110111010110
1001100111101110101100111100111010110111001011010011011110111010110
func(0)
0
func(3)
0
10
1110
11110
มีกฎข้อเดียวเท่านั้น: ไม่มีช่องโหว่มาตรฐาน!
นี่คือโค้ดกอล์ฟดังนั้นจำนวนไบต์ที่น้อยที่สุดจึงชนะ
φ - สรุปสาระสำคัญสามารถพบได้ที่นี่และสาธิต ideone เป็นที่นี่
δ - ในกรณีที่คุณสงสัยการประมาณการของฉันที่ความยาวของเทอมที่ 100 จะมีความยาวประมาณ 3.28x10 250ตัวอักษรซึ่งจะค่อนข้างมากสำหรับทุกคนในการคำนวณ
[0]\n[1, 0]\n[1, 1, 1, 0]\n...