Giờ vàng!

Mar 01 2023
Doug, bạn của tôi, đã yêu cầu một tính năng cho đồng hồ đo hệ mặt trời: Thêm một chỉ báo cho bạn biết khi nào thời gian hiển thị là một số nguyên tố. Điều này phù hợp với nỗi ám ảnh của tôi với các số nguyên tố và mong muốn của tôi là tiếp tục làm việc với dự án này không ngừng.

Anh bạn Doug của tôi đã yêu cầu một tính năng cho đồng hồ đo hệ mét mặt trời : Thêm một chỉ báo cho bạn biết khi nào thời gian hiển thị là một số nguyên tố. Điều này phù hợp với nỗi ám ảnh của tôi với các số nguyên tố và mong muốn của tôi là tiếp tục làm việc với dự án này không ngừng.

Vì vậy, tất nhiên tôi đã làm nó.

Tôi đã quyết định không coi thời gian hh:mm là một con số duy nhất cho mục đích này. Giờ và phút đang đếm số lượng khác nhau, vì vậy có vẻ không đúng khi coi đó là vô hướng. Nhưng cả thời gian mặt trời và số liệu địa phương đều có ý nghĩa như vô hướng.

Tôi nghĩ rằng tôi sẽ tính toán tất cả các số nguyên tố nhỏ hơn số tối đa có thể hiển thị (9999) khi khởi động, lưu chúng vào một vectơ thưa thớt và thực hiện tra cứu nhanh theo yêu cầu để xem thời điểm đó có phải là số nguyên tố hay không. Doug và tôi đã nói về cách tiếp cận. Anh ấy lý luận rằng, nếu Elon thực hiện bất kỳ thay đổi nào đối với mô phỏng mà tất cả chúng ta đang sống, thì các số nguyên tố có thể thay đổi, vì vậy sẽ an toàn nhất khi tính toán chúng khi bật nguồn. Điều đó có ý nghĩa.

Thật không may, bo mạch Arduino Uno Wifi Rev2 của tôi không có đủ bộ nhớ cho cấu trúc dữ liệu của thuật toán Sàng of Eratosthenes và vectơ tra cứu mà tôi muốn sử dụng. Một trong những điều thú vị về nền tảng tính toán Arduino là nó bị hạn chế về tài nguyên. Tôi nhớ lại việc viết ứng dụng trên Apple II khi tôi còn học trung học: Bạn phải chú ý đến việc làm cho mọi thứ trở nên nhỏ gọn và hiệu quả.

Hóa ra bạn có thể xác định tính nguyên tố của bất kỳ số nào lên tới 10.000 bằng cách kiểm tra tính chia hết của nó cho các số nguyên tố cho đến số nguyên tố đầu tiên sau căn bậc hai của 10.000. Điều này là không đủ cho các yếu tố tính toán, chỉ để xác định tính nguyên thủy. Tôi sẽ không trình bày lý thuyết số ở đây bởi vì thật thú vị khi tự mình tìm ra.

Tôi đã mã hóa cứng mảng [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79 , 83, 89, 97, 101] vào đồng hồ và kiểm tra tính chia hết mỗi khi tôi vẽ thời gian chỉ số trên một trong các màn hình 7 đoạn, 4 chữ số. Điều này thực sự khá hiệu quả: Một nửa số bị loại bằng cách thử với 2, v.v.

Khi thời gian là số nguyên tố, tôi bật sáng dấu thập phân sau chữ số cuối cùng:

Giờ số liệu địa phương là số nguyên tố!

Tôi thích nhận thấy khi đó là thời gian chính. Nó xảy ra khá thường xuyên khi cả thời gian theo hệ mét mặt trời và địa phương được hiển thị đều là số nguyên tố. Đó là một cú sốc gấp đôi của endorphin theo lý thuyết số!