3 điểm bởi GN⁺ 2025-08-21 | 1 bình luận | Chia sẻ qua WhatsApp
  • Lưới số nguyên tố là một công cụ trực quan thể hiện các mẫu và cấu trúc của số nguyên tố
  • Lưới này sắp xếp các con số theo dạng 2 chiều, giúp có thể nắm bắt ngay cách các số nguyên tố phân bố
  • Bằng cách phân tích các mẫu, có thể thu được insight về tính quy luật hoặc tính ngẫu nhiên của số nguyên tố
  • Công cụ này giúp người học lập trình/toán học hiểu trực quan hơn về lý thuyết số nguyên tố
  • Có thể dùng làm tài liệu tham chiếu để khám phá phân bố số nguyên tố từ nhiều góc độ khác nhau

Tổng quan về lưới số nguyên tố

  • Công cụ này sắp xếp các số dưới dạng lưới 2 chiều, rồi trực quan hóa việc mỗi ô có phải là số nguyên tố hay không
  • Người dùng có thể chỉ định phạm vi của từng hàng và cột để tạo ra các lưới với nhiều kích thước và hình dạng khác nhau
  • Trong lưới, các số nguyên tố được phân biệt rõ ràng bằng màu sắc hoặc ký hiệu, qua đó có thể quan sát ngay cách chúng phân bố
  • Việc khám phá các mẫu như phân bố có quy luật, đường chéo, cụm số trở nên dễ dàng hơn, và đây là tài liệu giúp nâng cao trực giác toán học
  • Công cụ này cung cấp một nguồn tham chiếu hữu ích cho nhà phát triển và học sinh, sinh viên trong các công việc liên quan đến thuật toán hoặc trực quan hóa

Tính năng và ví dụ sử dụng

  • Vị trí của mỗi số phản ánh kết quả xác định nhanh liệu đó có phải số nguyên tố hay không
  • Có thể xử lý số lượng lớn cùng lúc, nhờ đó khám phá được cả phân bố số nguyên tố của các số lớn
  • Dễ dàng tùy biến theo nhiều dạng lưới khác nhau (hình vuông, hình chữ nhật, v.v.)
  • Đây là tài liệu quan trọng cho học tập và phân tích trong giáo dục toán học, nghiên cứu thuật toán, trình bày trực quan, v.v.
  • Không chỉ phục vụ khám phá toán học, công cụ còn có thể được dùng trong nhiều lĩnh vực như bài toán thử thách lập trình hoặc phỏng vấn

1 bình luận

 
GN⁺ 2025-08-21
Ý kiến trên Hacker News
  • Xin chào! Tối qua mình làm thử công cụ trực quan hóa lưới số nguyên tố đơn giản này cho vui. Mình lấy cảm hứng từ một bài Show HN mà tình cờ thấy vài ngày trước. Nó dùng phép kiểm tra nguyên tố Miller-Rabin, và lấy các số nguyên tố trong dãy OEIS A014233 làm cơ sở, nên có thể kiểm tra tính nguyên tố đến tận 3317044064679887385961980. Có thể xem ví dụ ở liên kết này. Ba vòng tròn xuất hiện ở đó tương ứng với các số nguyên tố sau: 3317044064679887385961783
    3317044064679887385961801
    3317044064679887385961813
    Hy vọng nó cũng mang lại chút thú vị cho mọi người

    • Phần trực quan hóa thật sự rất đẹp! Sẽ hay hơn nếu có thêm tính năng cho biết đó là số nguyên tố nào khi rê chuột lên một điểm. Ngoài ra, mình cũng tò mò liệu có xuất hiện mẫu mới nào không nếu tăng số cột của mỗi hàng thêm X (hoặc cho X là số nguyên tố)

    • Cảm ơn vì đã làm ra cái này! Việc tăng nhanh số cột rồi quan sát các mẫu lặp lại, những chuyển động xoáy nhỏ hay các đường cong lớn thật sự rất vui. Hồi nhỏ mình rất thích khía cạnh câu đố logic của toán học, nhưng đến cuối cấp ba và đại học thì toán ngày càng trở nên trừu tượng nên mình thấy khó tiếp cận hơn. Nếu có những công cụ trực quan như thế này, có lẽ mình đã cảm nhận các khái niệm toán học cụ thể hơn và tiếp tục tò mò về các mối quan hệ ẩn sau công thức

    • Nếu có thêm khả năng đổi cơ số của số sang 16 hay cơ số khác nữa thì chắc sẽ rất thú vị. Mình rất tò mò xem các mẫu sẽ thay đổi ra sao

    • Quá tuyệt! Nhìn cái bạn làm xong mình cũng lao vào soi pattern bằng trực quan để tự tìm quy luật :D Nhưng vì có thể sắp xếp cột và hàng tùy ý nên cuối cùng có lẽ nỗ lực của mình cũng không mang nhiều ý nghĩa lắm :D

  • Giới thiệu một cách hơi lạ: xem các số nguyên theo từng gói 100 số. Nếu trong gói có số nguyên tố thì tô màu đen, không có thì tô đỏ. Gói đầu tiên chứa 100 số nguyên liên tiếp, gói thứ hai chứa một số mỗi hai số, gói thứ ba chứa một số mỗi ba số, v.v. Mỗi gói bắt đầu tiếp nối từ chỗ gói trước kết thúc. Hàng 1 có một gói, hàng 2 có hai gói, hàng 3 có ba gói... như vậy. Có hình ở đây. Nó trông như chữ tượng hình của một vũ trụ khác. Mình vẫn chưa hiểu rõ vì sao lại có hình dạng như vậy. Nếu muốn so với phân bố ngẫu nhiên thì có thể sửa code như sau: if (isPrime(myNum)) return 1; thành if (Math.random()>0.99) return 1; sẽ thấy khác biệt rất rõ. Mình thật sự muốn biết tính đối xứng và các đặc tính của pattern dựa trên số nguyên tố này đến từ đâu

    • Bình luận này giải thích hình đó khá hay. Về bản chất, nó là trực quan hóa của gcd(x,y), gần như không liên quan đến số nguyên tố. Biết điều này sẽ giúp hiểu nguyên nhân của nhiều pattern dễ hơn. Dù vậy đây vẫn là một cách trực quan hóa rất thú vị

    • Mô tả hơi khác với đoạn code được liên kết. Không phải gói thứ N được lấp bằng các số cách nhau N, mà là mỗi gói trong hàng thứ N chứa các số cách nhau N. Ví dụ, gói đầu tiên của hàng thứ hai là {101, 103, 105, ..., 299}, gói thứ hai là {102, 104, 106, ..., 300}. Khi hiểu nguyên lý này thì pattern sẽ được giải thích khá rõ trong bình luận này

    • Mình đã bị cuốn vào ý tưởng này khá nhiều. Ban đầu tưởng sẽ dễ dàng liên hệ nó với xoắn ốc Ulam, nhưng rabbit hole này lại dẫn tới phần dư đa thức và "Conjecture F" đầy bí ẩn (giải thích). parallax primes được giải thích chi tiết hơn cùng với kiến thức nền liên quan ở liên kết này, đặc biệt mình thấy rất thỏa mãn với cách diễn giải hình học ở trang này

    • Mình đã thử nghịch theo kiểu này: ví dụ. Khi chỉ lặp lại các gói chẵn hoặc gói lẻ, mình phát hiện pattern thực sự hội tụ. Rất kỳ lạ

  • Mình muốn đề xuất thử vẽ cả xoắn ốc Ulam nữa wiki Ulam spiral. Và nếu đây là trạng thái khởi đầu của Conway’s Game of Life, mình thật sự tò mò liệu có pattern thú vị nào tiến hóa ra không. Có lẽ có thể brute-force nhiều lưới khởi đầu kích thước khác nhau để chọn ra những game tồn tại hơn vài bước rồi cho con người tự quan sát. Nếu một lưới nhỏ hay xoắn ốc nào đó của số nguyên tố tạo ra điều gì đặc biệt, có khi HN sẽ xôn xao

    • Không hoàn toàn giống, nhưng mình có một trình tạo xoắn ốc Ulam làm từ hơn 10 năm trước. Link. Cái này không chỉ đánh dấu số nguyên tố mà còn đặt kích thước điểm theo số lượng ước số chẵn của giá trị ở mỗi vị trí

    • Mình cũng thêm một phiếu cho xoắn ốc Ulam. Ban đầu mình thắc mắc vì sao không thấy các đường chéo. Mình vốn đang kỳ vọng kiểu xoắn ốc Ulam

    • Một công cụ Ulam spiral khác

  • Trực giác của mình về số nguyên tố là chúng sẽ trở nên hiếm rất nhanh, nhưng thực tế thì số nguyên tố cực kỳ nhiều

    • Số nguyên tố thực sự ngày càng khó tìm hơn. Ví dụ, nếu vẽ tất cả số nguyên tố trên một hàng thì sẽ thấy sự khác biệt khá rõ (xem ở đây). Định lý số nguyên tố nổi tiếng trong số học cũng nói về điều này. Số lượng số nguyên tố không vượt quá n xấp xỉ n/log n, và mật độ số nguyên tố quanh n hội tụ về 1/log n. Bạn cũng có thể xem bài giải thích của tôi về định lý số nguyên tốWikipedia

    • Chủ đề này đã được nghiên cứu rất nhiều Wikipedia

    • Hầu hết mọi người đều nghĩ vậy. Mình đoán là vì họ được dạy rằng tìm số nguyên tố là khó. Thực ra tìm số nguyên tố không khó. Chỉ là ta cảm thấy việc xác định một số nguyên có phải là số nguyên tố hay không là khó thôi. Thực tế số nguyên tố còn nhiều hơn số chính phương

  • Khi giá trị cols (số cột) là số nguyên tố thì pattern hiện ra rất đẹp

    • Khi số cột là số nguyên tố p, các số trong từng cột sẽ có cùng phần dư khi chia cho p. Vì vậy các bội số của p không còn là số nguyên tố, và từ đó xuất hiện pattern đường chéo

    • Không hẳn là số cột phải là số nguyên tố, mà khi cols+1 hoặc cols-1 có nhiều ước số (ví dụ 25, 91, 119) cũng sẽ xuất hiện các pattern thú vị. Việc những số nằm gần số nguyên tố lại có nhiều ước số cũng khá hay

    • Khi số cột là 7 thì có nhiều đường chéo đi từ trên phải xuống dưới trái, còn khi số cột là 5 thì từ trên trái xuống dưới phải. Mình cũng tò mò về tần suất của các sexy prime liên tiếp. Muốn biết liệu pattern này có bị phá vỡ với các số lớn hơn không

    • Pattern khi cols % 30 == 0 (30, 60, 90, 120, v.v.) thật sự rất thú vị. Các vạch dọc thẳng hiện lên rất rõ. Khi cộng hoặc trừ đi 1 (119 hoặc 121), các vạch trông như “xoay” sang trái hoặc phải. Đây là một công cụ trực quan hóa thật sự tuyệt vời

    • Phần lớn các pattern nhìn thấy thực ra không phải là đặc tính của số nguyên tố. Chỉ cần đánh dấu những số không chia hết cho 100 số tự nhiên đầu tiên thì cũng sẽ cho ra hình gần giống vậy

  • Gần đây mình cũng làm một công cụ trực quan hóa số nguyên tố:
    https://ilmenit.github.io/prime-fold/
    Nó không chỉ trực quan hóa mà còn là công cụ tìm các hàm toán học tạo ra hoặc chứa số nguyên tố bằng thuật toán tiến hóa và hàm fitness.
    Chế độ PrimeFold (nhúng 2D): nhập hoặc tiến hóa hai hàm f_x(n), f_y(n) để ánh xạ số thành tọa độ 2D. Số nguyên tố và hợp số được trực quan hóa khác nhau. Ví dụ: f_x(n) = n, f_y(n) = n^2.
    Chế độ PrimeGen (tạo 1D): nhập hoặc tiến hóa một hàm f(n) để tạo ra chuỗi số. Nó trực quan hóa mỗi giá trị đầu ra có phải là số nguyên tố hay không và số lượng số nguyên tố duy nhất. Ví dụ: f(n) = 2*n + 1

  • Nếu đặt thành 1, 7, 100 thì nó tạo cảm giác như đang nhìn ticker tape chòm sao với các chevron của Stargate vậy :D

  • liên kết này, nếu zoom out rồi tăng giảm giá trị cols từng đơn vị một, có thể quan sát được sự thay đổi của pattern. Biến đổi từ -7 đến +5 đặc biệt ấn tượng. Ở #1-200-420 cũng vậy

  • Khi rảnh mình từng dùng python để so sánh chữ số hàng đơn vị (hệ thập phân) của các số nguyên tố liên tiếp và phát hiện một quan hệ thú vị. Mình loại 2 và 5 ra vì chúng chỉ xuất hiện một lần, rồi đếm tần suất chuyển giữa các chữ số như 1->3, 1->5, ... Vì nghĩ số nguyên tố là ngẫu nhiên nên mình tưởng tần suất gần như phải ngang nhau, nhưng thực tế lại có khác biệt có ý nghĩa thống kê. Vẫn chưa ai biết vì sao

  • Trực giác của mình là số nguyên tố phải hiếm hơn nhiều và tốc độ giảm còn nhanh hơn rất nhiều khi số lớn dần, nhưng thực tế chúng vẫn cực kỳ nhiều. Ở [1, 10,000, 10,000] thì phần bên dưới vẫn khá dày. Tất nhiên là thưa hơn. Khoảng cách trung bình giữa các số nguyên tố là log(n) (prime number theorem)