Bài tập
Xác định một mod-Fold là một hàm có dạng f (x) = x% a 1 % a 2 % bit% a k , trong đó a i là các số nguyên dương và k 0 . (Ở đây, % là toán tử modulo liên kết trái.)
Cho một danh sách n số nguyên y 0 , Nhận, y n − 1 , xác định xem có tồn tại một mod- f để mỗi y i = f (i) không .
Bạn có thể chọn và sửa bất kỳ hai đầu ra Y và N cho chức năng / chương trình của mình. Nếu tồn tại một f như vậy , bạn phải luôn trả về / in chính xác Y ; nếu không, bạn luôn phải trả lại / in chính xác N . (Đây có thể là true
/ false
, hoặc 1
/ 0
, hoặc false
/ true
, v.v.) Đề cập những điều này trong câu trả lời của bạn.
Đệ trình ngắn nhất tính bằng byte thắng.
Thí dụ
Xác định f (x) = x% 7% 3 . Giá trị của nó bắt đầu:
| x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ...
| f(x) | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 0 | 1 | 2 | ...
Do đó, được đưa ra 0 1 2 0 1 2 0 0 1 2
làm đầu vào cho giải pháp của chúng tôi, chúng tôi sẽ in Y , vì f này tạo ra chuỗi đó. Tuy nhiên, được đưa ra 0 1 0 1 2
làm đầu vào, chúng tôi sẽ in N , vì không có f nào tạo ra chuỗi đó.
Các trường hợp thử nghiệm
Các công thức được đưa ra khi đầu ra là Y chỉ để tham khảo; bạn không cần phải in chúng
0 1 2 3 4 5 Y (x)
1 N
0 0 0 Y (x%1)
0 1 2 0 1 2 0 0 1 2 Y (x%7%3)
0 0 1 N
0 1 2 3 4 5 6 0 0 1 2 Y (x%8%7)
0 1 2 0 1 2 0 1 2 3 N
0 2 1 0 2 1 0 2 1 N
0 1 0 0 0 1 0 0 0 0 1 Y (x%9%4%3%2)