เกมสนุกที่จะเล่นถ้าคุณกำลังเบื่อเป็นเกม Diffy มันเป็นเกมที่ผู้เล่นคนหนึ่งที่เรียบง่ายและสามารถใช้เวลาของคุณ
เกม Diffy นั้นมีลักษณะดังนี้: คุณเริ่มต้นด้วยรายการจำนวนเต็มไม่เป็นลบในตัวอย่างนี้เราจะใช้
3 4 5 8
จากนั้นคุณก็รับผลต่างระหว่างตัวเลขที่อยู่ติดกัน
(8) 3 4 5 8
5 1 1 3
จากนั้นคุณทำซ้ำ คุณทำซ้ำจนกว่าคุณจะรู้ว่าคุณได้เข้าสู่วง และโดยทั่วไปเกมจะเริ่มต้นจากจุดเริ่มต้นอีกครั้ง
3 4 5 8
5 1 1 3
2 4 0 2
0 2 4 2
2 2 2 2
0 0 0 0
0 0 0 0
บ่อยครั้งที่เกมไม่มีเป้าหมายคุณเพียงแค่สละเวลากับการคิดเลขในใจ อย่างไรก็ตามเมื่อฉันมีความสุขกับการเล่นเกมนี้เป้าหมายของฉันคือการพยายามเลือกเวลาและพยายามสร้างเกมที่มีช่วงเวลานั้น
ไม่ใช่เกมทุกเกมที่มีเป็นระยะ ๆ ตัวอย่างข้างต้นไม่ได้เป็นระยะ ๆ เนื่องจากในที่สุดมันก็มาถึงเกมที่มีเลขศูนย์ทั้งหมดและทำให้ไม่สามารถกลับไปที่ตำแหน่งเริ่มต้นได้ ในความเป็นจริงดูเหมือนว่าเกมส่วนใหญ่นั้นไม่ได้เป็นระยะทำให้บางเกมเป็นอัญมณีหายาก
ให้เกมที่วนซ้ำในช่วงเวลาหนึ่งมันเป็นเรื่องไม่สำคัญที่จะสร้างอีกเกมที่วนซ้ำในช่วงเวลาเดียวกันโดยเพิ่มลำดับเป็นสองเท่า ตัวอย่างเช่นเกม:
1 0 1
เล่นเหมือนกันกับเกม:
1 0 1 1 0 1
ในความเป็นจริงเราสามารถพิจารณาได้ว่าทั้งคู่เป็นเกมที่เล่นซ้ำอย่างไม่สิ้นสุด:
... 1 0 1 ...
เราจะพิจารณาเกมหนึ่งเกมเพื่อความท้าทายนี้
ในทำนองเดียวกันการคูณลำดับทั้งหมดด้วยค่าคงที่จะรักษาระยะเวลาไว้เล็กน้อยดังนั้นเราจะนับเกมสองเกมที่แตกต่างกันโดยปัจจัยคงที่ให้เป็นเกมเดียวกันอีกครั้ง
สตริงที่ไม่สิ้นสุด... 1 0 1 ...
และ... 0 1 1 ...
เห็นได้ชัดว่าเป็นสตริงเดียวกันที่เลื่อนโดยอักขระหนึ่งตัว เราจะไม่นับเกมเหล่านี้เป็นเกมที่แตกต่างกัน แต่เมื่อเกมหนึ่งเข้ามาถึงเกมอื่นมันจะไม่ถือว่าเป็นการสิ้นสุดรอบเมื่อพิจารณารอบเวลาของเกม ตัวอย่างเช่น:
เกมสองเกม
... 0 0 0 1 0 1 ... = A
... 0 0 1 1 1 1 ... = B
... 0 1 0 0 0 1 ... = A << 4
... 1 1 0 0 1 1 ... = B << 4
... 0 1 0 1 0 0 ... = A << 2
... 1 1 1 1 0 0 ... = B << 2
และ
... 0 0 1 0 1 0 ... = A << 1
... 0 1 1 1 1 0 ... = B << 1
... 1 0 0 0 1 0 ... = A << 5
... 1 0 0 1 1 1 ... = B << 5
... 1 0 1 0 0 0 ... = A << 3
... 1 1 1 0 0 1 ... = B << 3
เป็นทั้งเกมที่มีช่วงเวลา 6 พวกเขาไม่มีคำศัพท์ซึ่งกันและกันที่จุดใด ๆ ในลูปของพวกเขา (ซึ่งแตกต่างกัน... 1 1 0 ...
และ... 1 0 1 ...
ถึงกัน) แต่เนื่องจากพวกเขาเปลี่ยนเวอร์ชั่นของกันและกันพวกมันจะถือว่าเป็นเกมเดียวกันเมื่อนับ
การสะท้อนกลับ (หรือการย้อนกลับ) สตริงที่ไม่สิ้นสุดให้ความสำคัญกับพฤติกรรมเดียวกัน แต่ไม่จำเป็นต้องให้ช่วงเวลาเดียวกัน ยกตัวอย่างเช่น
... 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 ...
และการสะท้อนของมัน
... 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 ...
หากเราพิจารณาคนรุ่นต่อไปที่จะผลิตที่จุดกึ่งกลางระหว่างตัวละคร:
... 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 ...
... 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 ...
... 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 ...
... 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 ...
จากนั้นทั้งคู่จะเปลี่ยนตำแหน่ง 3.5 องค์ประกอบ อย่างไรก็ตามเราไม่พิจารณารุ่นต่อไปที่จะผลิตด้วยการชดเชยองค์ประกอบครึ่งดังนั้นหนึ่งรอบถึงการเปลี่ยนแปลง 4 องค์ประกอบให้ระยะเวลา 15 และรอบอื่น ๆ ลงไปที่การเปลี่ยนแปลงองค์ประกอบ 3 ให้ระยะเวลา จาก 5
ด้วยเหตุนี้เราจึงพิจารณาสตริงที่ไม่สมมาตรและการสะท้อนกลับของมันจะแตกต่างกันแม้ว่าวัฏจักรจะมีความหมายบางประการ แน่นอนถ้าพวกเขาเป็นส่วนหนึ่งของวงจรเดียวกันมันจะนับเป็นรอบเดียวเท่านั้น
ด้วยข้อ จำกัด เหล่านี้คณิตศาสตร์เพียงเล็กน้อยก็สามารถแสดงให้เห็นว่าในความเป็นจริงมีจำนวน จำกัด ของวงจร Diffy กับช่วงเวลา จำกัด ใด ๆ ก็ตาม ยิ่งกว่านั้นทุก ๆ สตริงอนันต์ที่มีคาบ จำกัด คือการวนซ้ำไม่สิ้นสุดของสตริง จำกัด
โปรดทราบว่าสตริงสามารถมีขนาดใหญ่กว่าหรือสั้นกว่าระยะเวลา ตัวอย่างเช่นมีสตริงของความยาว 5 ที่มีระยะเวลา 15 และสตริงของความยาว 15 ที่มีระยะเวลา 5 สตริงทั้งหมดที่มีระยะเวลา 19 มีความยาว 9709
งาน
รับจำนวนn
ดังกล่าว n ที่มีขนาดใหญ่กว่า 1 ผ่านทางวิธีการป้อนข้อมูลมาตรฐานกำหนดจำนวนรอบ Diffy n
ที่แตกต่างกันที่มีระยะเวลาของการตรง
(ดูเหมือนว่าในวรรณคดี0
มักจะไม่ถือว่าเป็นเกม Diffy เป็นระยะเนื่องจากนี่เป็นพื้นที่สีเทาฉันจะไม่ขอให้คุณแก้ไขn = 1
)
นี่คือโค้ดกอล์ฟดังนั้นเป้าหมายคือเพื่อลดจำนวนไบต์ในซอร์สโค้ดของคุณ
กรณีทดสอบ
2 -> 0
3 -> 1
4 -> 0
5 -> 1
6 -> 1
7 -> 3
8 -> 0
9 -> 4
10 -> 4
11 -> 3
12 -> 5
13 -> 5
14 -> 24
15 -> 77
16 -> 0
17 -> 259
18 -> 259
19 -> 27
20 -> 272
21 -> 811
22 -> 768
23 -> 91
24 -> 340
25 -> 656
คำแนะนำ
เกมแบบกระจายตามช่วงเวลาทั้งหมดจะมีศูนย์และค่าคงที่เดียวหมายความว่าทุกเกมในช่วงเวลาจะมีความผิดปกติในบางเกมที่มีความต่างกันซึ่งประกอบด้วยศูนย์และเกม
010001->111001->000101->100111->010100->011110->010001
และ110110->101101->011011->110110
ที่แตกต่างกัน?