Trong thử thách này, chúng tôi đã học được cách mã hóa mọi số nguyên dương bằng cách sử dụng các cây hệ số.
Đây là cách nó làm việc:
Chuỗi rỗng có giá trị là 1.
(S)
trong đóS
bất kỳ biểu thức nào có giá trị S ước tính cho số nguyên tố S th.AB
nơiA
vàB
là những biểu hiện arbirary với các giá trị của A và B lần lượt có giá trị A * B .
Ví dụ: nếu chúng tôi muốn đại diện cho 7, chúng tôi sẽ làm
7 -> (4) -> (2*2) -> ((1)(1)) -> (()())
Hóa ra chúng ta có thể đại diện cho mọi số nguyên bằng phương pháp này. Trong thực tế, một số con số chúng ta có thể đại diện theo nhiều cách. Bởi vì phép nhân là 10 giao hoán
((()))()
và
()((()))
Đồng thời một số số chỉ có thể được biểu diễn theo 1 cách. Lấy 8 làm ví dụ. 8 chỉ có thể được đại diện là
()()()
Và vì tất cả các nguyên tử của chúng ta đều giống nhau, chúng ta không thể sử dụng giao hoán để sắp xếp lại chúng.
Vì vậy, bây giờ câu hỏi là "Những số nào chỉ có thể được biểu diễn theo 1 cách?". Quan sát đầu tiên là một cái tôi mới bắt đầu quay lại đó. Có vẻ như sức mạnh hoàn hảo có một số tính chất đặc biệt. Theo nghiên cứu sâu hơn, chúng ta có thể tìm thấy 36, đó là 6 2 là một sức mạnh hoàn hảo nhưng có nhiều đại diện.
(())()(())()
(())()()(())
()(())()(())
()(())(())()
()()(())(())
Và điều này có ý nghĩa bởi vì 6 đã được sắp xếp lại, do đó, bất kỳ số nào chúng ta tạo ra trong số 6 cũng phải được sắp xếp lại.
Vì vậy, bây giờ chúng tôi có một quy tắc:
- Một số có một đại diện duy nhất nếu nó là một sức mạnh hoàn hảo của một số với một đại diện duy nhất.
Quy tắc đó có thể giúp chúng tôi giảm việc xác định xem một số tổng hợp là duy nhất để xác định xem một số nguyên tố có phải là duy nhất hay không. Bây giờ chúng ta có quy tắc đó, chúng tôi muốn tìm ra điều gì làm cho một số nguyên tố duy nhất. Điều này thực sự là khá rõ ràng. Nếu chúng ta lấy một số duy nhất và gói nó trong ngoặc đơn, kết quả phải là duy nhất và, đi theo cách khác nếu n có nhiều biểu diễn thì số nguyên tố thứ n phải có nhiều biểu diễn. Điều này mang lại quy tắc thứ hai:
- Số nguyên tố thứ n là duy nhất khi và chỉ khi n là duy nhất.
Cả hai quy tắc này đều được đệ quy, vì vậy chúng ta sẽ cần một trường hợp cơ bản. Số duy nhất nhỏ nhất là gì? Người ta có thể bị cám dỗ để nói 2 bởi vì nó chỉ ()
, nhưng 1, chuỗi rỗng, thậm chí còn nhỏ hơn và là duy nhất.
- 1 là duy nhất.
Với ba quy tắc này, chúng ta có thể xác định xem một số có cây nhân tố duy nhất hay không.
Bài tập
Bạn có thể đã thấy nó đến, nhưng nhiệm vụ của bạn là lấy một số nguyên dương và xác định xem nó có phải là duy nhất không. Bạn nên viết một chương trình hoặc hàm thực hiện tính toán này. Bạn nên xuất một trong hai giá trị có thể, những giá trị này tùy thuộc vào bạn nhưng một giá trị sẽ đại diện cho "có", là đầu ra khi đầu vào là duy nhất và một giá trị đại diện cho "không" là đầu ra khác.
Câu trả lời của bạn nên được ghi bằng byte với ít byte hơn.
Các trường hợp thử nghiệm
Dưới đây là cặp số duy nhất đầu tiên:
1
2
3
4
5
7
8
9
11
16
17
19
23
25
27
31
Đề nghị kiểm tra
5381 -> Unique
Có vẻ như OEIS A214577 bằng cách nào đó có liên quan, vì vậy nếu bạn cần thêm các trường hợp thử nghiệm ở đó, nhưng tôi không biết chúng giống nhau nên bạn có thể tự chịu rủi ro.