Mỗi ngày, mỗi phút, ... mỗi micro giây, nhiều quyết định được đưa ra bởi máy tính của bạn. Trong các ngôn ngữ cấp cao, chúng thường có dạng câu lệnh như if
, while
và for
, nhưng ở cấp độ cơ bản nhất, tồn tại các hướng dẫn ngôn ngữ máy gọi là hướng dẫn rẽ nhánh / nhảy . Bộ xử lý hiện đại xếp hàng hướng dẫn trong một đường ống , và điều này có nghĩa là bộ xử lý cần quyết định có nên lấp đầy đường ống bằng các hướng dẫn ngay sau nhánh (tức là không được thực hiện ) hoặc hướng dẫn tại đích nhánh.
Nếu bộ xử lý không đoán đúng, các hướng dẫn đã nhập sai vào đường ống cần phải được bỏ qua và các hướng dẫn chính xác phải được tìm nạp, gây ra độ trễ. Công việc của người dự đoán chi nhánh là thử và đoán xem liệu chi nhánh sẽ được thực hiện để tránh hành động tốn kém của việc nạp lại đường ống.
Bạn phải viết một công cụ dự đoán, sẽ đưa ra một chuỗi các quyết định trong quá khứ, đoán chính xác quyết định tiếp theo. Chương trình của bạn có thể được viết bằng bất kỳ ngôn ngữ nào, miễn là bạn chỉ định liên kết đến trình thông dịch của nó nếu đó là ngôn ngữ tối nghĩa / đánh gôn. Nó phải lấy lịch sử thực tế trong quá khứ làm đối số dòng lệnh đầu tiên của nó, nhưng nó sẽ không được cung cấp cho lần đoán đầu tiên của chuỗi. Sau đó, bạn phải trả lại dự đoán của mình bằng cách in nó ra thiết bị xuất chuẩn. Một quyết định có dạng "y" hoặc "n". Mỗi trường hợp thử nghiệm là một chuỗi gồm 72 quyết định, vì vậy bạn có thể giả sử rằng đối số lịch sử đã chỉ định sẽ không bao giờ dài hơn 71 ký tự. Ví dụ: thử nghiệm "Luân phiên 1":
ynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynyn
Bạn sẽ bị loại nếu chương trình của bạn:
- không trả về kết quả trong vòng một giây
- không trả về một
y
hoặcn
(dòng mới không quan trọng và bị bỏ qua) - cố gắng sửa đổi bất kỳ mã hoặc tệp nào liên quan đến thử thách này, bao gồm mã của đối thủ khác
- chứa bất cứ thứ gì độc hại
Bạn có thể sử dụng một tệp để duy trì nếu bạn muốn, nhưng nó phải được đặt tên duy nhất và phù hợp với các điều trên.
Đây là một thử thách mã , không phải mã golf . Chiến thắng sẽ được cấp bởi người dự đoán chi nhánh cho ứng cử viên có giải pháp dự đoán thành công hầu hết các nhánh trong toàn bộ bộ thử nghiệm. Các xét nghiệm:
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,All yes
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn,All no
ynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynynyn,Alternating 1
nnyynnyynnyynnyynnyynnyynnyynnyynnyynnyynnyynnyynnyynnyynnyynnyynnyynnyy,Alternating 2
yyynnnyyynnnyyynnnyyynnnyyynnnyyynnnyyynnnyyynnnyyynnnyyynnnyyynnnyyynnn,Alternating 3
nnnnyyyynnnnyyyynnnnyyyynnnnyyyynnnnyyyynnnnyyyynnnnyyyynnnnyyyynnnnyyyy,Alternating 4
yyyyyynnnnnnyyyyyynnnnnnyyyyyynnnnnnyyyyyynnnnnnyyyyyynnnnnnyyyyyynnnnnn,Alternating 5
nnnnnnnnnnnnyyyyyyyyyyyynnnnnnnnnnnnyyyyyyyyyyyynnnnnnnnnnnnyyyyyyyyyyyy,Alternating 6
yyyyyyyyyyyyyyyyyynnnnnnnnnnnnnnnnnnyyyyyyyyyyyyyyyyyynnnnnnnnnnnnnnnnnn,Alternating 7
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyynnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn,Alternating 8
yynyynyynyynyynyynyynyynyynyynyynyynyynyynyynyynyynyynyynyynyynyynyynyyn,2-1
ynnnynnnynnnynnnynnnynnnynnnynnnynnnynnnynnnynnnynnnynnnynnnynnnynnnynnn,1-3
nyyyyynyyyyynyyyyynyyyyynyyyyynyyyyynyyyyynyyyyynyyyyynyyyyynyyyyynyyyyy,5-1
nnnnnnnnnnnynnnnnnnnnnnynnnnnnnnnnnynnnnnnnnnnnynnnnnnnnnnnynnnnnnnnnnny,1-11
nyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyynyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,35-1
yynnnnyynnnnyynnnnyynnnnyynnnnyynnnnyynnnnyynnnnyynnnnyynnnnyynnnnyynnnn,2-4
ynnyyynyynnnynnyyynyynnnynnyyynyynnnynnyyynyynnnynnyyynyynnnynnyyynyynnn,1-2-3
ynynynynynynynynynynynynynynynynynynyyyyyyyyyyyyyyyyyynnnnnnnnnnnnnnnnnn,A1/A7
yyyyyynnnnnnyyyyyynnnnnnyyyyyynnnnnnnnyynnyynnyynnyynnyynnyynnyynnyynnyy,A5/A2
nnnnnnnnnnnnyyyyyyyyyyyynnnnnnnnnnnnyyyynnnnyyyynnnnyyyynnnnyyyynnnnyyyy,A6/A4
nyyyyynyyyyynyyyyynyyyyynyyyyynyyyyynyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,5-1/35-1
yyynnnyyynnnyyynnnnyyyyyyyyyyyyyyyyyyyyyyynyyyyynyyyyyyynnnnyynnnnyynnnn,A3/Y/5-1/2-4
yynnnnyynnnnyynnnnnyynnnynnyyynyynnnnnnynnnynnnynnnynnyynyynyynyynyynyyn,2-4/1-2-3/1-3/2-1
Toàn bộ các bài kiểm tra và chương trình chạy được đặt tại kho GitHub này . Đơn giản chỉ cần thêm dự đoán của bạn src/predictors.txt
vào mẫu <name>,<command to run>
và chạy main.py
. Tôi đã cung cấp hai dự đoán rất cơ bản đã được thử nghiệm đơn giản. Tôi muốn giới thiệu chiều rộng cột ít nhất là 92 khi chạy trình chạy để có đầu ra đẹp. Nếu bạn tình cờ phát hiện ra bất kỳ lỗi nào với nó, xin vui lòng cho tôi biết. :)