Khoảng một năm trước, bạn được yêu cầu tìm các số nguyên tố XOR . Đây là những số có các yếu tố duy nhất là 1 và chính chúng khi thực hiện phép nhân XOR trong cơ sở 2 . Bây giờ sẽ gia vị mọi thứ một chút.
Chúng ta sẽ tìm các số nguyên tố XOR trong cơ sở -2
Chuyển đổi sang cơ sở -2
Cơ sở -2 là rất nhiều như mọi cơ sở khác. Vị trí bên trái nhất là vị trí 1s (1 = (-2) 0 ), bên cạnh đó là vị trí -2s (-2 = (-2) 1 ), bên cạnh đó là vị trí 4s (4 = (-2 ) 2 ), vân vân và vân vân. Sự khác biệt lớn là số âm có thể được biểu diễn trong cơ sở -2 mà không có bất kỳ dấu âm nào.
Dưới đây là một số chuyển đổi ví dụ:
Decimal | Base -2
-----------------
6 | 11010
-7 | 1001
12 | 11100
-15 | 110001
Bổ sung XOR trong Cơ sở -2
Bổ sung XOR trong Base -2 khá giống với bổ sung XOR trong nhị phân. Bạn chỉ cần chuyển đổi số thành Base -2 và XOR mỗi chữ số tại chỗ. (Điều này giống như bổ sung mà không mang theo)
Dưới đây là một ví dụ được thực hiện qua từng bước:
(Chúng tôi sẽ sử dụng biểu tượng +'
để biểu thị phép cộng Base -2 XOR)
Bắt đầu ở cơ sở 10:
6 +' -19
Chuyển đổi sang cơ sở -2:
11010 +' 10111
Thêm chúng mà không mang theo:
11010
+' 10111
---------
01101
Chuyển đổi kết quả của bạn trở lại cơ sở 10:
-3
Phép nhân XOR trong Cơ sở -2
Một lần nữa phép nhân XOR trong cơ sở -2 gần giống với phép nhân XOR trong hệ nhị phân. Nếu bạn không quen thuộc với phép nhân XOR trong cơ sở 2, có một lời giải thích tuyệt vời ở đây tôi khuyên bạn nên xem xét điều đó trước.
Phép nhân XOR trong Cơ sở -2 giống như thực hiện phép nhân dài trong cơ sở -2 ngoại trừ khi đến bước cuối cùng thay vì cộng tất cả các số với truyền thống +
bạn sử dụng như +'
chúng tôi đã xác định ở trên.
Dưới đây là một ví dụ được thực hiện dưới đây:
Bắt đầu bằng số thập phân:
8 *' 7
Chuyển đổi sang Cơ sở -2:
11000 *' 11011
Thiết lập phân chia dài:
11000
*' 11011
---------
Nhân số thứ nhất với mỗi vị trí trong giây
11000
*' 11011
------------
11000
11000
0
11000
11000
Thêm tất cả các kết quả bằng cách sử dụng bổ sung cơ sở -2 XOR
11000
*' 11011
-------------
11000
11000
0
11000
+' 11000
-------------
101101000
Chuyển đổi kết quả trở lại thập phân:
280
Các thách thức
Thách thức của bạn là xác minh xem một số có phải là số nguyên tố XOR trong cơ sở -2 hay không. Một số là một số nguyên tố XOR trong cơ sở -2 nếu cặp số nguyên duy nhất nhân với nó trong cơ sở là 1 và chính nó. (1 không phải là số nguyên tố)
Bạn sẽ nhận được một số và xuất ra một boolean, trung thực nếu đầu vào là một số nguyên tố XOR trong cơ sở -2 sai.
Các giải pháp sẽ được tính bằng byte với việc đạt được số byte thấp nhất làm mục tiêu.
Các trường hợp thử nghiệm
Sau đây là tất cả các số nguyên tố XOR trong cơ sở -2:
-395
-3
-2
3
15
83
Sau đây không phải là các số nguyên tố XOR trong cơ sở -2:
-500
-4
0
1
258
280
258
dường như bằng nhau-2 *' -129 = 10 *' 10000011