การเรียงลำดับคือลำดับใด ๆ ที่คุณสามารถหาได้จากอีกอันด้วยการลบจำนวนอักขระใด ๆ subsequences ไม่ว่างเปล่าที่แตกต่างของ100มี0, 1, 00, ,10 100subsequences ไม่ว่างเปล่าที่แตกต่างของ1010มี0, 1, 00, 01, 10, 11,010 , 100, 101, ,1101010
เขียนโปรแกรมหรือฟังก์ชั่นที่ให้จำนวนเต็มบวก nส่งกลับจำนวนของ subsequences ไม่ว่างเปล่าที่แตกต่างกันของการขยายตัวไบนารีของn
ตัวอย่าง: ตั้งแต่4เป็น100ในไบนารีและเราเห็นว่ามันมีห้า subsequences f(4) = 5ไม่ว่างเปล่าที่แตกต่างกันข้างต้นดังนั้น เริ่มต้นจากn = 1ลำดับเริ่มต้น:
1, 3, 2, 5, 6, 5, 3, 7, 10, 11, 9, 8, 9, 7, 4, 9, 14, 17, 15, 16, 19, 17, 12
อย่างไรก็ตามโปรแกรมของคุณจะต้องใช้งานได้กับn <2 50ภายในไม่กี่วินาทีบนเครื่องที่ทันสมัย ตัวอย่างขนาดใหญ่:
f(1099511627775) = 40
f(1099511627776) = 81
f(911188917558917) = 728765543
f(109260951837875) = 447464738
f(43765644099) = 5941674