เมื่อเร็ว ๆ นี้ผมโพสต์คำถามเกี่ยวกับเกม Diffy ซึ่งมีที่ยังไม่ได้หายไป นั่นเป็นคำถามที่ยากมาก แต่ฉันอยากจะถามคำถามที่ง่ายขึ้นเกี่ยวกับเกม Diffy เพื่อที่เราจะได้ลูกบอลกลิ้ง
Diffy ทำงานอย่างไร
คัดลอกมาจากFind Diffy Games
เกม 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
เกมส่วนใหญ่จบลงด้วยจำนวนศูนย์ซึ่งถือว่าเป็นสถานะแพ้ แต่มีไม่กี่เกมที่หายากติดอยู่ในลูปขนาดใหญ่กว่า
งาน
เมื่อกำหนดสถานะเริ่มต้นของเกม Diffy ให้พิจารณาว่าในที่สุดเกมจะถึงสถานะของศูนย์ทั้งหมดหรือไม่ คุณควรส่งออกค่า Truthy หรือ Falsy สำหรับแต่ละสถานะของทั้งสอง ซึ่งสอดคล้องกับสิ่งที่ไม่สำคัญ
เป้าหมายคือเพื่อลดจำนวนไบต์ในแหล่งที่มาของคุณ
1 1 0
เป็นระยะดังนั้น42 42 41
สถานะดังกล่าว
n
เป็นเลขคี่เกมจะไม่เป็นศูนย์เว้นแต่ว่าตัวเลขทั้งหมดจะเท่ากัน หากความยาวคือกำลังของ 2 มันจะเป็นศูนย์เสมอ
n
องค์ประกอบและสูงสุดm
จะใช้n * bit_length(m)
ขั้นตอนมากที่สุด ดังนั้นn*m
ยังเป็นขอบเขตบน แข็งแรงผูกไว้บนเป็นt(n) * bit_length(m)
ที่t(n)
เป็นพลังงานที่ใหญ่ที่สุดของ 2 n
ที่ปัจจัยของ