Thử thách
Tìm bìa nhỏ nhất của căn cứ (ví dụ, môđun) có bộ cặn bậc hai có thể được kiểm tra thông qua bảng tra cứu để xác định dứt khoát hay không một số nguyên không âm cho n là một hình vuông hoàn hảo. Tất cả các cơ sở phải nhỏ hơn hoặc bằng căn bậc hai của giá trị tối đa của n .
Câu trả lời với tập hợp cơ sở nhỏ nhất cho một thể loại n đã cho sẽ chiến thắng thử thách. (Điều này có nghĩa là có khả năng có nhiều hơn một người chiến thắng.) Các loại của n là:
Category Maximum allowed n Maximum allowed modulus/base
------------- -------------------- ----------------------------
8-bit values 255 15
16-bit values 65535 255
32-bit values 4294967295 65535
64-bit values 18446744073709551615 4294967295
Trong trường hợp cà vạt có hai bộ có số lượng bằng nhau, cà vạt sẽ đi đến bộ có khả năng lớn hơn để phát hiện các hình vuông không sớm hơn trong chuỗi.
Trong trường hợp không tìm thấy bìa hoàn chỉnh (hoàn toàn có khả năng cho các loại 32 bit và 64 bit), người chiến thắng sẽ là tập hợp các cơ sở có thể thống kê hoặc chứng minh được tỷ lệ phần trăm không bình phương cao nhất (không chính xác báo cáo bình phương là không bình phương). Xem dưới đây để thảo luận về bìa không đầy đủ.
Lý lịch
Trong nhiều ứng dụng lý thuyết số, câu hỏi đặt ra liệu một số n có phải là một hình vuông hoàn hảo hay không (0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, v.v.). Một cách để kiểm tra xem n có phải là hình vuông hay không là kiểm tra xem sàn (n) ² = n, nghĩa là, liệu căn bậc hai được làm tròn của n , khi bình phương, có trả lại n không . Ví dụ: sàn (√123) ² = 11² = 121, không phải là 123, vì vậy 123 không phải là hình vuông; nhưng sàn (√ 121) ² = 11² = 121, nên 121 là hình vuông. Phương pháp này hoạt động tốt đối với số lượng nhỏ, đặc biệt là khi có hoạt động căn bậc hai phần cứng. Nhưng đối với số lượng lớn (hàng trăm hoặc hàng nghìn bit) thì có thể rất chậm.
Một cách khác để kiểm tra độ vuông góc là loại trừ các ô vuông không sử dụng bảng dư lượng bậc hai. Ví dụ: tất cả các hình vuông trong cơ sở 10 phải có một chữ số (vị trí) cuối cùng là 0, 1, 4, 5, 6 hoặc 9. Các giá trị này tạo thành tập hợp dư lượng bậc hai cho cơ sở 10. Vì vậy, nếu một cơ sở -10 số kết thúc bằng 0, 1, 4, 5, 6 hoặc 9, bạn biết rằng nó có thể là hình vuông và sẽ cần phải kiểm tra thêm. Nhưng nếu một số cơ sở 10 kết thúc bằng 2, 3, 7 hoặc 8, thì bạn có thể chắc chắn rằng nó không phải là số hình vuông.
Vì vậy, hãy nhìn vào một cơ sở khác. Tất cả các ô vuông trong cơ sở 8 phải kết thúc bằng 0, 1 hoặc 4, điều này thuận tiện chỉ là 3 trong số 8 khả năng, nghĩa là 37,5% khả năng một số ngẫu nhiên có thể là hình vuông, hoặc 62,5% cơ hội của một số ngẫu nhiên chắc chắn không phải là hình vuông. Đó là những tỷ lệ cược tốt hơn nhiều so với những gì cơ sở 10 đưa ra. (Và lưu ý rằng một hoạt động mô đun cơ sở 8 chỉ đơn giản là một hoạt động hợp lý - và hoạt động, trái ngược với mô đun cơ sở 10, là một phân chia cho 10 với phần còn lại.)
Có căn cứ nào tốt hơn không? Vâng, vâng, thực sự. Cơ sở 120 có 18 khả năng (0, 1, 4, 9, 16, 24, 25, 36, 40, 49, 60, 64, 76, 81, 84, 96, 100 và 105), chỉ chiếm 15% cơ hội có thể là hình vuông. Và cơ sở 240 vẫn tốt hơn, chỉ có 24 khả năng, chỉ chiếm 10% cơ hội có thể là hình vuông.
Nhưng không một cơ sở đơn lẻ nào có thể xác định dứt khoát (trừ khi nó lớn hơn số lượng tối đa đang được thử nghiệm, điều này là không thực tế). Một cơ sở duy nhất một mình chỉ có thể loại trừ ý thức ; nó không thể kết luận xác minh ý thức . Chỉ một tập hợp các cơ sở được lựa chọn cẩn thận, làm việc cùng nhau, có thể kết luận xác minh độ vuông góc trên một loạt các số nguyên.
Vì vậy, câu hỏi trở thành: Tập hợp các cơ sở nào tạo thành một vỏ bọc tối thiểu cùng nhau cho phép khấu trừ dứt khoát về độ vuông góc hoặc không vuông góc?
Ví dụ về bìa chính xác nhưng không tối thiểu
Vỏ bọc 16 chân đế {3, 4, 5, 7, 8, 9, 11, 13, 16, 17, 19, 23, 25, 29, 31, 37} là đủ để xác định chính xác độ vuông góc hoặc không vuông góc của tất cả các giá trị 16 bit 0 đến 65535. Nhưng nó không phải là tối thiểu bìa , bởi vì có ít nhất một vỏ 15 cơ sở tồn tại mà cũng có thể dễ dàng khám phá. Trên thực tế, có khả năng các vỏ bọc nhỏ hơn tồn tại - có lẽ chỉ có 6 hoặc 7 căn cứ.
Nhưng để minh họa, chúng ta hãy xem thử nghiệm giá trị mẫu của n bằng cách sử dụng bộ bìa 16 gốc này. Dưới đây là các bộ dư lượng bậc hai cho các bộ cơ sở trên:
Base m Quadratic residue table specific to base m
------ ----------------------------------------------------
3 {0,1}
4 {0,1}
5 {0,1,4}
7 {0,1,2,4}
8 {0,1,4}
9 {0,1,4,7}
11 {0,1,3,4,5,9}
13 {0,1,3,4,9,10,12}
16 {0,1,4,9}
17 {0,1,2,4,8,9,13,15,16}
19 {0,1,4,5,6,7,9,11,16,17}
23 {0,1,2,3,4,6,8,9,12,13,16,18}
25 {0,1,4,6,9,11,14,16,19,21,24}
29 {0,1,4,5,6,7,9,13,16,20,22,23,24,25,28}
31 {0,1,2,4,5,7,8,9,10,14,16,18,19,20,25,28}
37 {0,1,3,4,7,9,10,11,12,16,21,25,26,27,28,30,33,34,36}
Bây giờ, hãy kiểm tra số n = 50401 bằng cách sử dụng bộ cơ sở này, bằng cách chuyển đổi nó thành từng cơ sở. (Đây không phải là cách hiệu quả nhất để kiểm tra dư lượng, nhưng nó đủ cho mục đích giải thích.) Đó là vị trí số 1 mà chúng tôi quan tâm ở đây (được đánh dấu bên dưới trong ngoặc đơn):
Base "Digits" in base m
m m^9 m^8 m^7 m^6 m^5 m^4 m^3 m^2 m^1 ( m^0 )
---- -----------------------------------------------------------------
3 2 1 2 0 0 1 0 2 0 ( 1 ) ✓
4 3 0 1 0 3 2 0 ( 1 ) ✓
5 3 1 0 3 1 0 ( 1 ) ✓
7 2 6 6 6 4 ( 1 ) ✓
8 1 4 2 3 4 ( 1 ) ✓
9 7 6 1 2 ( 1 ) ✓
11 3 4 9 5 ( 10 )
13 1 9 12 3 ( 0 ) ✓
16 12 4 14 ( 1 ) ✓
17 10 4 6 ( 13 ) ✓
19 7 6 11 ( 13 )
23 4 3 6 ( 8 ) ✓
25 3 5 16 ( 1 ) ✓
29 2 1 26 ( 28 ) ✓
31 1 21 13 ( 26 )
37 36 30 ( 7 ) ✓
Vì vậy, chúng ta có thể thấy rằng trong 13 trong số các bazơ này, phần dư phù hợp với phần dư bậc hai đã biết (gọi đây là "hit" trong bảng) và trong 3 trong số các bazơ này, phần dư không khớp với phần dư bậc hai đã biết (gọi đây là phần dư "cô"). Tất cả chỉ mất 1 lần để biết rằng một số không phải là hình vuông, vì vậy chúng tôi có thể dừng lại ở mức 11, nhưng với mục đích minh họa, chúng tôi đã kiểm tra tất cả 16 căn cứ ở đây.
Ví dụ về một trang bìa không đầy đủ
Về mặt kỹ thuật, một trang bìa không hoàn chỉnh không phải là một trang bìa, mà là bên cạnh điểm. Tập hợp các cơ sở {7, 8, 11, 15} gần như bao gồm tất cả các giá trị 8 bit của n từ 0 đến 255 một cách chính xác, nhưng không hoàn toàn. Cụ thể, nó xác định không chính xác 60 và 240 là hình vuông (đây là dương tính giả) - nhưng nó xác định chính xác tất cả các ô vuông thực tế (0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196 và 225) và không có kết quả dương tính giả nào khác. Vì vậy, đây là một bộ 4 bộ gần như thành công như một giải pháp, nhưng cuối cùng thất bại, bởi vì một vỏ bọc không đầy đủ không phải là một giải pháp hợp lệ.
Đối với 8 bit n , tập hợp các cơ sở {7, 8, 11, 15} là một trong hai bộ 4 cơ sở tạo ra hai lỗi và có bảy bộ 4 cơ sở chỉ tạo ra một lỗi. Không có bộ 4 cơ sở nào thực sự tồn tại tạo thành một vỏ bọc hoàn chỉnh và chính xác cho các giá trị 8 bit. Bạn có thể tìm thấy một bộ 5 cơ sở không tạo ra lỗi, bao gồm tất cả các giá trị 8 bit một cách chính xác không? Hay bạn cần 6 trở lên? (Tôi biết câu trả lời cho 8 bit n , nhưng tôi sẽ không đưa ra. Tôi không biết câu trả lời cho 16 bit, 32 bit hoặc 64 bit và tôi tin ngay cả 16- trường hợp bit là không thể giải quyết thông qua tìm kiếm vũ phu. Giải quyết các trường hợp 32 bit và 64 bit chắc chắn sẽ yêu cầu di truyền, heuristic hoặc các kỹ thuật tìm kiếm khác.)
Một nhận xét về số lượng lớn mật mã
Ngoài các số 64 bit - lên đến hàng trăm hoặc hàng nghìn chữ số nhị phân - đây là nơi kiểm tra độ vuông nhanh thực sự hữu ích nhất, ngay cả khi nắp không đầy đủ (mà chắc chắn sẽ là số thực sự lớn). Làm thế nào một bài kiểm tra như thế này vẫn có thể hữu ích ngay cả khi nó không đủ quyết định? Chà, hãy tưởng tượng bạn đã có một bài kiểm tra cực kỳ nhanh về độ chính xác, hoạt động chính xác 99,9% thời gian và cho kết quả âm tính giả là 0,1% thời gian còn lại và không bao giờ cho kết quả dương tính giả. Với một bài kiểm tra như vậy, bạn sẽ có thể xác định không nhận biết được một số gần như ngay lập tức, và trong trường hợp đặc biệt là thiếu quyết đoán, sau đó bạn có thể sử dụng một phương pháp chậm hơn để giải quyết một cách khác. Điều này sẽ giúp bạn tiết kiệm khá nhiều thời gian.
Ví dụ: tập {8, 11, 13, 15} đúng 99,61% thời gian cho các giá trị 8 bit của n từ 0 đến 255, đúng 95,98% thời gian cho các giá trị 16 bit của n từ 0 đến 65535 và đúng 95,62% thời gian cho các giá trị 24 bit của n từ 0 đến 16777215. Khi n đi đến vô cùng, tỷ lệ chính xác của bộ cơ sở này giảm xuống, nhưng nó tiếp cận một cách bất thường và không bao giờ giảm xuống dưới 95,5944% tính đúng đắn
Vì vậy, ngay cả bộ 4 căn cứ nhỏ bé này cũng rất hữu ích để xác định gần như ngay lập tức khoảng 22 trong số 23 số lớn tùy ý là không phải hình vuông - tránh sự cần thiết phải kiểm tra thêm các số đó bằng các phương pháp chậm hơn. Các phương pháp chậm hơn sau đó chỉ cần được áp dụng trong một tỷ lệ nhỏ các trường hợp không thể loại trừ bằng thử nghiệm nhanh này.
Thật thú vị khi lưu ý rằng một số cơ sở 16 bit đạt được tốt hơn 95% một mình. Trên thực tế, mỗi căn cứ dưới đây có thể loại bỏ tốt hơn 97% tổng số con số đến vô cùng vì không phải là hình vuông. Phần dư bậc hai được đặt cho mỗi cơ sở này có thể được biểu diễn dưới dạng một mảng bit được đóng gói chỉ sử dụng 8192 byte.
Dưới đây là 10 căn cứ đơn mạnh nhất dưới 2 ^ 16:
Rank Base Prime factorization Weeds out
---- ------------------------------ ---------
1. 65520 = 2^4 x 3^2 x 5 x 7 x 13 97.95%
2. 55440 = 2^4 x 3^2 x 5 x 7 x 11 97.92%
3. 50400 = 2^5 x 3^2 x 5^2 x 7 97.56%
4. 52416 = 2^6 x 3^2 x 7 x 13 97.44%
5. 61200 = 2^4 x 3^2 x 5^2 x 17 97.41%
6. 44352 = 2^6 x 3^2 x 7 x 11 97.40%
7. 63360 = 2^7 x 3^2 x 5 x 11 97.39%
8. 60480 = 2^6 x 3^3 x 5 x 7 97.38%
9. 63840 = 2^5 x 3 x 5 x 7 x 19 97.37%
10. 54720 = 2^6 x 3^2 x 5 x 19 97.37%
Xem bất cứ điều gì thú vị mà tất cả các căn cứ đều có điểm chung? Không có lý do nào để nghĩ rằng chúng có thể hữu ích khi kết hợp với nhau (có thể là chúng, có thể chúng không), nhưng có một số manh mối tốt ở đây là căn cứ nào có khả năng có ảnh hưởng nhất đối với các loại số lớn hơn.
Thách thức phụ: Một trong những cơ sở có ảnh hưởng nhất (nếu không phải là nhiều nhất) lên tới 2 ^ 28 là 245044800, một mình có thể loại bỏ chính xác 99,67% số không vuông, hoặc khoảng 306 trong số 307 số ngẫu nhiên được ném vào nó. Bạn có thể tìm thấy các cơ sở đơn có ảnh hưởng nhất ít hơn 2 ^ 32?
Liên quan
Có một số ý tưởng rất hay trong các câu hỏi sau đây có liên quan chặt chẽ, cũng như một số thủ thuật tối ưu hóa vi mô để thực hiện các hoạt động nhất định nhanh hơn. Mặc dù các câu hỏi được liên kết không đặt ra cụ thể để tìm ra bộ căn cứ mạnh nhất, ý tưởng về căn cứ mạnh hoàn toàn tập trung vào một số kỹ thuật tối ưu hóa được sử dụng ở đó.