Một trò chơi thú vị để chơi nếu bạn chán là Trò chơi Diffy . Đây là một trò chơi một người chơi khá đơn giản và có thể tiêu tốn rất nhiều thời gian của bạn.
Trò chơi Diffy hoạt động như sau: Bạn bắt đầu với một danh sách các số nguyên không âm, trong ví dụ này chúng tôi sẽ sử dụng
3 4 5 8
Sau đó, bạn lấy sự khác biệt tuyệt đối giữa các số liền kề
(8) 3 4 5 8
5 1 1 3
Sau đó, bạn lặp lại. Bạn lặp lại cho đến khi bạn nhận ra bạn đã bước vào một vòng lặp. Và sau đó nói chung trò chơi bắt đầu lại từ đầu.
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
Thường thì trò chơi không có mục tiêu, bạn chỉ chờ đợi thời gian bằng cách làm số học trong đầu. Tuy nhiên, khi tôi có niềm vui khi chơi trò chơi này, mục tiêu của tôi là luôn cố gắng chọn một giai đoạn và cố gắng xây dựng một trò chơi lặp lại với khoảng thời gian cụ thể đó.
Không phải tất cả các trò chơi là định kỳ, ví dụ ở trên không phải là định kỳ vì cuối cùng nó cũng đến một trò chơi với tất cả các số không và do đó không bao giờ có thể đưa nó trở lại vị trí bắt đầu. Trong thực tế, có vẻ như phần lớn các trò chơi không phải là định kỳ làm cho một vài trò chơi là một viên ngọc quý hiếm.
Với một trò chơi lặp lại với một khoảng thời gian cụ thể, việc tạo ra một trò chơi khác lặp lại với cùng một khoảng thời gian là điều không quan trọng bằng cách nhân đôi chuỗi. Ví dụ: trò chơi:
1 0 1
Chơi giống hệt như trò chơi:
1 0 1 1 0 1
Trên thực tế, chúng ta có thể xem xét rằng cả hai thực sự là trò chơi lặp lại vô hạn:
... 1 0 1 ...
Chúng tôi sẽ xem xét họ một trò chơi vì lợi ích của thử thách này.
Theo cách tương tự nhân toàn bộ chuỗi với một hằng số cũng sẽ bảo toàn khoảng thời gian một cách tầm thường để chúng ta một lần nữa sẽ tính bất kỳ hai trò chơi khác nhau bởi một yếu tố không đổi là cùng một trò chơi.
Các chuỗi vô hạn ... 1 0 1 ...
và ... 0 1 1 ...
rõ ràng là cùng một chuỗi được dịch chuyển bởi một ký tự. Chúng tôi sẽ không tính những trò chơi này là các trò chơi khác nhau, nhưng khi trò chơi này đến trò chơi khác, nó sẽ không được coi là kết thúc chu kỳ khi xác định thời gian của trò chơi. Ví dụ:
Hai trò chơi
... 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
và
... 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
là cả hai trò chơi với giai đoạn 6. Chúng không chia sẻ bất kỳ thời hạn nào với nhau tại bất kỳ điểm nào trong các vòng lặp của chúng (không giống nhau ... 1 1 0 ...
và ... 1 0 1 ...
tiếp cận nhau) nhưng vì chúng là các phiên bản thay đổi của nhau nên chúng được coi là cùng một trò chơi khi đếm.
Phản ánh (hoặc đảo ngược) một chuỗi vô hạn về cơ bản cho cùng một hành vi, nhưng không nhất thiết phải đưa ra cùng một khoảng thời gian. Hãy xem xét, ví dụ,
... 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 ...
và sự phản ánh của nó
... 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 ...
Nếu chúng ta coi thế hệ tiếp theo sẽ được sản xuất ở điểm giữa các nhân vật:
... 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 ...
sau đó cả hai sẽ thay đổi vị trí của 3,5 yếu tố. Tuy nhiên, chúng tôi không coi thế hệ tiếp theo được tạo ra với phần bù nửa phần tử đó, do đó, một vòng làm thay đổi 4 phần tử trong khoảng thời gian 15 và các phần còn lại chuyển sang phần 3 phần tử trong một khoảng thời gian của 5.
Vì lý do này, chúng tôi coi một chuỗi không đối xứng và sự phản xạ của nó là khác biệt, mặc dù các chu kỳ theo một nghĩa nào đó là đẳng cấu. Tất nhiên, nếu chúng tạo thành một phần của cùng một chu kỳ thì nó chỉ được tính là một chu kỳ.
Với những hạn chế này, toán học nhỏ có thể chỉ ra rằng trên thực tế có một số hữu hạn các chu kỳ Diffy với bất kỳ khoảng thời gian hữu hạn nào. Hơn nữa, mỗi chuỗi vô hạn có chu kỳ hữu hạn là sự lặp lại vô hạn của một chuỗi hữu hạn.
Lưu ý rằng các chuỗi có thể lớn hơn hoặc ngắn hơn các khoảng thời gian. Ví dụ: có một chuỗi có độ dài 5 với chu kỳ 15 và một chuỗi có độ dài 15 với chu kỳ 5. Tất cả các chuỗi có chu kỳ 19 có độ dài 9709.
Bài tập
Cho một số n
sao cho n lớn hơn 1 thông qua các phương thức nhập chuẩn xác định số chu kỳ Diffy khác biệt với một khoảng thời gian chính xác n
.
(Dường như, trong tài liệu, 0
thường không được coi là một trò chơi Diffy định kỳ. Vì đây là một khu vực màu xám nên tôi sẽ không yêu cầu bạn giải quyết n = 1
)
Đây là môn đánh gôn , vì vậy mục tiêu là giảm thiểu số lượng byte trong mã nguồn của bạn.
Các trường hợp thử nghiệm
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
Gợi ý
Tất cả các trò chơi khác nhau định kỳ sẽ chỉ chứa số không và một hằng số duy nhất, điều này có nghĩa là mọi trò chơi định kỳ sẽ đồng hình với một số trò chơi khác biệt chỉ bao gồm số không và số không.
010001->111001->000101->100111->010100->011110->010001
và 110110->101101->011011->110110
khác biệt?