Giới thiệu - Vòng cổ là gì?
Vòng cổ là thứ mà mọi người OEIS bị ám ảnh. Thử thách OEIS có 5 chuỗi vòng cổ.
Một sợi dây chuyền nhị phân có độ dài nlà một vòng lặp với nhạt đó là một trong hai 0hoặc 1. Hai dây chuyền là như nhau nếu một cái có thể được xoay để trở thành cái kia, và hai dây chuyền có thể đảo ngược là như nhau nếu một cái có thể được xoay, đảo ngược, hoặc đảo ngược và xoay để trở thành cái khác.
Một vòng cổ nguyên thủy là một thứ không thể được thể hiện bằng nhiều hơn một bản sao của chuỗi hạt được xâu chuỗi lại với nhau. Lưu ý rằng các bản sao phải được lắp ráp tất cả theo cùng một thứ tự (không đảo ngược) để vòng cổ được coi là không nguyên thủy.
Ví dụ: chúng ta hãy xem vòng cổ này : 0 1 1 0 1 1. Nó không phải là nguyên thủy bởi vì nó có thể được thể hiện như được 0 1 1lặp lại hai lần. 0 1 0 1 1là nguyên thủy.
0 1 1 0là nguyên thủy bởi vì 0 1và 1 0không được coi là cùng một chuỗi. Vòng cổ này tương đương với 1 1 0 0vì nó có thể được xoay trái một hạt để trở thành hạt này, nhưng không tương đương với 0 1 0 1(không phải là nguyên thủy bằng cách này).
Thử thách
Cho một số nguyên không âm n, trả về số lượng vòng cổ nhị phân nguyên thủy có thể đảo ngược có chiều dài n. Đầu vào và đầu ra dưới dạng một số nguyên duy nhất.
Một vài thuật ngữ đầu tiên của chuỗi này là 1, 2, 1, 2, 3, 6, 8, 16, 24, 42, 69, 124, 208, 378, 668, 1214, 2220, 4110, 0-index.
Đây là OEIS A001371
Tham chiếu thực hiện trong Python 3 - khá chậm
0 1 0 1nguyên thủy? Nó không 0 1lặp lại hai lần sao?