Bạn còn nhớ những ngày xưa tốt đẹp khi mở một tài liệu đơn giản hoặc trang web bị chậm một cách đau đớn vì nó đã ăn cắp tất cả các tài nguyên ít ỏi mà máy tính của bạn có? Và ngày nay, làm điều tương tự thậm chí còn chậm hơn, mặc dù bộ xử lý của bạn nhanh hơn hàng trăm lần và có quyền truy cập vào bộ nhớ gấp hàng nghìn lần?
Để mô phỏng hiệu ứng phình to trong trình xem tài liệu hiện tại và các ứng dụng tương tự, hãy viết chương trình có vấn đề về hiệu suất rõ ràng khi chạy trên các máy mạnh hơn .
Để có một nhiệm vụ chung cho tất cả mọi người, hãy biến nó thành một trình tạo số nguyên tố .
- Chương trình phải in các số nguyên tố liên tiếp, bắt đầu từ 2, mỗi số trong một dòng mới và không có gì khác. Nó sẽ để điều này mãi mãi (hoặc cho đến khi hết bộ nhớ). Như thế này:
2 3 5 7 11 13 17
Cần có một độ trễ giữa việc in từng dòng, đủ để con người có thể nhận thấy.
Độ trễ này phải dài hơn vì máy chương trình đang chạy nhanh hơn. Máy càng nhanh, chương trình càng chậm.
Tôi sẽ không chỉ định điểm chuẩn chính xác vì nó có thể trở nên chủ quan, nhưng sẽ có sự khác biệt rõ rệt về tốc độ của con người trên hai máy khác nhau nếu có sự khác biệt đáng kể giữa hiệu suất của hai máy.
Tốc độ của chương trình không phải giảm một cách đơn điệu trên tất cả các máy hiện có từng được tạo. Điều này sẽ khó xác định, và thậm chí khó xác minh hơn. Tôi tin tưởng vào ý thức chung của các thí sinh về những gì có thể được coi là hiệu suất khác biệt đáng kể giữa các máy và nó đủ để đáp ứng điều đó.
Tôi cũng sẽ không chỉ định giới hạn thời gian chính xác trên hoặc dưới, nhưng nó phải ở dưới giới hạn hợp lý, vì vậy vui lòng không có ngày hoặc năm giữa hai lần in.
Tôi sẽ không yêu cầu nó chạy trên mọi thứ từ Eniac cho đến thời hiện đại, nhưng nó phải đủ chung chung, ví dụ, không được phép nói nó chỉ hoạt động trên hai loại CPU cụ thể và đặc biệt phát hiện tên của một CPU cụ thể trên đó nó sẽ chạy chậm hơn hoặc nhanh hơn.
Mã không nên dựa vào trình biên dịch hoặc phiên bản thông dịch. Nó sẽ hoạt động nếu cùng một phiên bản của trình biên dịch / trình thông dịch được cài đặt trên cả máy chậm hơn và nhanh hơn hoặc ngay cả khi mã nhị phân / mã byte được biên dịch trên một máy và sau đó chạy trên hai máy khác nhau.
Vui lòng giải thích các nguyên tắc về cách chương trình của bạn đang hoạt động. Vì sẽ khó tái tạo kết quả, tính hợp lệ của câu trả lời có thể phụ thuộc vào tính khả thi của phương pháp.
Mặc dù tôi muốn nó trở thành một cuộc thi ngầm, nhưng thật đáng buồn, trang web này không còn là "Câu đố lập trình & Golf Code" mà chỉ đơn giản là "Code Golf", vì vậy mã ngắn nhất sẽ thắng.