ฉันมีปัญหาเกี่ยวกับ combinatoricsที่ฉันต้องการนำมาใช้กับOEISปัญหาคือฉันไม่มีเงื่อนไขเพียงพอ ความท้าทายของรหัสนี้คือการช่วยฉันคำนวณเงื่อนไขเพิ่มเติมและผู้ชนะจะเป็นผู้ใช้ที่มีการส่งที่มีจำนวนคำมากที่สุด
ปัญหา
สมมติว่าผมให้คุณเป็นแถวสามเหลี่ยมของหลอดไฟที่มีความยาวด้าน :
o
o o
o o o
o o o o
o o o o o
o o o o o o
1 2 ... n
ฉันจะเปิดหลอดไฟสามหลอดที่สร้างรูปสามเหลี่ยมด้านเท่า "ตั้งตรง" ดังตัวอย่างต่อไปนี้:
o
o x
o o o
o o o o
o x o o x
o o o o o o
ก่อนที่ฉันจะเปิดไฟงานของคุณคือการลบหลอดไฟให้ได้มากที่สุดเท่าที่จะเป็นไปได้จากอาเรย์ - โดยไม่สูญเสียความสามารถในการอนุมานรูปสามเหลี่ยมของหลอดไฟที่เปิดอยู่ เพื่อความชัดเจนหากหลอดไฟถูกลบออกจะไม่สว่างขึ้นเมื่อเปิดใช้งานตำแหน่ง
ตัวอย่างเช่นหากคุณลบหลอดไฟต่อไปนี้ (ทำเครื่องหมายโดย.
) คุณจะเห็นไฟสองดวงต่อไปนี้เปิดเท่านั้น (ทำเครื่องหมายโดยx
) ซึ่งเพียงพอที่จะอนุมานตำแหน่งที่สาม (ไม่ส่องแสง):
. .
. o . x
. . o . . o
o o o . => o o o .
o o o o . o x o o . <- the third unlit position
o . . . o o o . . . o o
อนุญาตa(n)
เป็นจำนวนสูงสุดของหลอดไฟที่สามารถลบได้โดยไม่ต้องแนะนำสิ่งที่คลุมเครือ
ตัวอย่าง
ด้วยอัลกอริทึมไร้เดียงสาฉันได้ตรวจสอบค่าสูงสุดเป็นรูปสามเหลี่ยมที่มีความยาวด้าน 7 ดังที่แสดงด้านล่าง:
.
. . o
. . o o . o
. . . . . o . o o .
. . . . o o o o o . o o . o .
. . . . o o o o . o o o o o . o . o . o o
. . . o o . o o o o . . o o o . . . o o o . o . o o o
a(2) = 3 a(3) = 4 a(4) = 5 a(5) = 7 a(6) = 9 a(7) = 11
เกณฑ์การให้คะแนน
การส่งที่คำนวณลำดับ[a(2), a(3), ..., a(n)]
สำหรับ n ที่ใหญ่ที่สุดชนะ หากการส่งสองครั้งมีลำดับเหมือนกันดังนั้นการส่งสองครั้งที่ชนะก่อนหน้านี้
แม้ว่าจะไม่จำเป็นสำหรับการส่งมันก็จะเป็นประโยชน์กับฉันถ้าคุณโพสต์การก่อสร้างของอาร์เรย์ triangluar ที่เกิดขึ้นตามตัวอย่างข้างต้น