เพิ่งหมดความสนใจฉันพยายามที่จะแก้ปัญหาจากหมวด "ล่าสุด" ของ Project Euler ( ลำดับ Digit Sum ) แต่ฉันไม่สามารถคิดวิธีแก้ปัญหาได้อย่างมีประสิทธิภาพ ปัญหามีดังต่อไปนี้ (ในลำดับคำถามดั้งเดิมมีสองรายการที่เริ่มต้น แต่ไม่เปลี่ยนลำดับ):
ลำดับ Digit Sum คือ 1,2,4,8,16,23,28,38,49 .... โดยที่ลำดับของลำดับคือผลรวมของตัวเลขที่อยู่ก่อนหน้าในลำดับ ค้นหาคำศัพท์ลำดับที่ลำดับ
โซลูชันไร้เดียงสาไม่สามารถใช้งานได้เนื่องจากใช้เวลานาน ฉันพยายามลดปัญหาให้เป็นกรณีของการยกกำลังเมทริกซ์ (ซึ่งใช้เวลา )) แต่ไม่สามารถเกิดขึ้นได้กับการเกิดซ้ำที่เหมาะสมกับเกณฑ์เชิงเส้นเนื่องจากการเกิดซ้ำสำหรับลำดับนี้คือ ค่อนข้างแปลก จะเห็นได้ว่าลำดับถูกควบคุมโดยการเกิดซ้ำ:
โดยที่คือคำของลำดับและคือฟังก์ชันซึ่งเมื่อได้รับจำนวนธรรมชาติเป็นอินพุตจะส่งคืนผลรวมของตัวเลขของตัวเลข (เช่น. ) วิธีที่สองของฉันคือพยายามหารูปแบบบางอย่างในลำดับ จะเห็นได้ว่าคำสองสามคำแรกของลำดับสามารถเขียนเป็นn t h d
a_1 = 1
a_2 = 1 + d( 1 )
a_3 = 1 + d( 1 ) + d( 1 + d( 1 ) )
a_4 = 1 + d( 1 ) + d( 1 + d( 1 ) ) + d( 1 + d( 1 ) + d( 1 + d( 1 ) ) )
a_5 = 1 + d( 1 ) + d( 1 + d( 1 ) ) + d( 1 + d( 1 ) + d( 1 + d( 1 ) ) ) + d( 1 + d(
1 ) + d( 1 + d( 1 ) ) + d( 1 + d( 1 ) + d( 1 + d( 1 ) ) ) )
จากรูปแบบข้างต้นกลายเป็นคำที่ของลำดับสามารถสร้างขึ้นได้ด้วยวิธีการต่อไปนี้:
- เขียนพร้อมสัญลักษณ์เพิ่มเติมระหว่างกัน 1
- ออกจากแรกจากนั้นจึงใช้ฟังก์ชัน ในอีกข้อกำหนดและอีกคำต่อจากนั้นในอีกข้อกำหนดและต่อไปd 2 0 2 1 2 2
- จากนั้นใช้วิธีการข้างต้นซ้ำกับข้อโต้แย้งของแต่ละฟังก์ชั่นใช้
เช่นถ้า n = 3 เราดำเนินการจัดการต่อไปนี้:
1 + 1 + 1 + 1 + 1 + 1 + 1 + 1
1 + d( 1 ) + d( 1 + 1 ) + d( 1 + 1 + 1 + 1 )
1 + d( 1 ) + d( 1 + d(1) ) + d( 1 + d( 1 ) + d( 1 +d( 1 ) ) )
ด้วยการเขียนโปรแกรมแบบไดนามิกฉันสามารถสร้างคำศัพท์โดยใช้วิธีการข้างต้นในเวลาซึ่งอีกครั้งไม่ได้ดีกว่าโซลูชั่นไร้เดียงสา
แก้ไข 1
อีกสิ่งหนึ่งที่สามารถสังเกตได้คือว่า{n-1}) ยกตัวอย่างเช่น 5 แต่ฉันไม่สามารถใช้ประโยชน์จากจุดนี้ได้ ฉันพยายามค้นหาความสัมพันธ์การเกิดซ้ำเชิงเส้นอีกครั้ง (สำหรับการยกกำลังเมทริกซ์) แต่ฉันหามันไม่เจอ
แก้ไข 2
ต่อไปนี้เป็นกราฟเมื่อมีการพล็อตลำดับสำหรับช่วงที่เล็กลง (คำแรกของลำดับจะถูกพล็อต)
PS: ฉันรู้ว่าไม่แนะนำให้ขอคำแนะนำจาก Project Euler แต่ฉันต้องการทิศทางใหม่หรือคำใบ้เนื่องจากฉันได้ย้ายเป็นวงกลมในไม่กี่วันที่ผ่านมา หากไม่เป็นที่ยอมรับฉันสามารถลบคำถามได้หากแนะนำ
You are given a106 = 31054319.
ในปัญหาออยเลอร์ดั้งเดิมเป็นคำใบ้