Lý lịch
Chuỗi 1-2-3-Triborie
Hãy tưởng tượng trong một giây rằng bạn có thể tạo một chuỗi Wikipedia bằng cách thay thế công thức lặp tiêu chuẩn bằng cách sau:
Về cơ bản, thay vì tổng hai số cuối để lấy số tiếp theo, bạn tổng hợp ba số cuối. Đây là cơ sở cho chuỗi 1-2-3-Triborie.
Tiêu chí của Brown
Tiêu chí của Brown cho biết bạn có thể biểu thị bất kỳ giá trị số nguyên nào dưới dạng tổng các thành viên của chuỗi với điều kiện:
Đối với tất cả
n
lớn hơn 1,
Điều này có ý nghĩa gì đối với thử thách
Bạn có thể mô tả bất kỳ số nguyên dương nào dưới dạng tổng các thành viên của chuỗi 1-2-3-Triborie được hình thành bởi các điều kiện ban đầu sau:
Điều này được gọi là, đối với mọi giá trị trong chuỗi này, tỷ lệ giữa các thuật ngữ không bao giờ lớn hơn 2 (tỷ lệ trung bình ở khoảng 1.839).
Cách viết trong hệ thống biểu diễn số này
Hãy nói rằng bạn sử dụng một đại diện endian nhỏ. Sắp xếp các thành viên của chuỗi như vậy:
1 2 3 6 11 20 37 68
Sau đó, bạn lấy số của mình để được đại diện (đối với các thử nghiệm của chúng tôi, giả sử là số đó 63
) và tìm các giá trị của 1-2-3-Triborie đã cho, tổng bằng 63 (trước tiên sử dụng các giá trị lớn nhất!) . Nếu số là một phần của tổng, đặt 1 dưới nó, 0 nếu không.
1 2 3 6 11 20 37 68
0 0 0 1 0 1 1 0
Bạn có thể làm điều này cho bất kỳ số nguyên cụ thể nào - chỉ cần xác minh rằng bạn sử dụng các giá trị lớn nhất bên dưới đầu vào đã cho trước!
Định nghĩa (cuối cùng)
Viết chương trình hoặc hàm sẽ thực hiện như sau với một số đầu vào số nguyên dương n
(được viết bằng bất kỳ cơ sở tiêu chuẩn nào) giữa 1 và giá trị tối đa của ngôn ngữ của bạn:
- Chuyển đổi giá trị thành biểu diễn số 1-2-3-Triborie được xác định.
- Sử dụng biểu diễn giống như nhị phân này và đọc nó như thể nó là nhị phân. Điều này có nghĩa là các chữ số giữ nguyên, nhưng ý nghĩa của chúng là thay đổi.
- Lấy số nhị phân này và chuyển đổi nó thành cơ sở của số ban đầu.
- Đầu ra hoặc trả lại số mới này.
Tuy nhiên, miễn là đầu ra hợp lệ, bạn không cần phải làm theo các bước sau. Nếu bạn kỳ diệu tìm thấy một số công thức ngắn hơn (và tương đương về mặt toán học), hãy sử dụng nó.
Ví dụ
Đặt hàm f
là hàm được mô tả bởi định nghĩa và để []
biểu diễn các bước đã thực hiện (với tư cách là người cuối cùng, mặc dù điều đó không quan trọng) (bạn không cần phải tuân theo quy trình này, đây chỉ là quá trình được mô tả):
>>> f(1)
[1]
[1]
[1]
1
>>> f(5)
[5]
[0, 1, 1]
[6]
6
>>> f(63)
[63]
[0, 0, 0, 1, 0, 1, 1]
[104]
104