Các Xen kẽ Harmonic Dòng là một loạt hội tụ nổi tiếng.
"Rõ ràng", rõ ràng là nó hội tụ đến nhật ký tự nhiên của 2. Hay không?
Vì bộ truyện không hoàn toàn hội tụ , bằng cách sắp xếp lại các điều khoản, tôi có thể làm cho nó tiếp cận bất cứ điều gì tôi muốn. Giả sử tôi muốn chuỗi hội tụ đến e . Tất cả những gì tôi phải làm là đây:
Nếu bạn không bắt được mô hình, thì đó không phải là một mô hình rõ ràng. Đây là cách nó hoạt động:
- Xem xét các điều khoản của loạt điều hòa xen kẽ về các điều khoản tích cực và tiêu cực.
- Thêm các điều khoản tích cực vừa đủ để vượt quá mục tiêu của chúng tôi (e). (còn gọi là
sum > target) - Trừ các thuật ngữ tiêu cực tiếp theo.
- Quay trở lại 2.
Lưu ý rằng ở bước 2, nếu của chúng tôi sum == target, bạn nên thêm một thuật ngữ tích cực khác.
Từ đó, chúng ta có thể định nghĩa một chuỗi liên kết với mỗi số như sau:
- Thực hiện theo thuật toán trên
- Đối với mỗi thuật ngữ tích cực, đầu ra 1.
- Đối với mỗi thuật ngữ phủ định, đầu ra 0.
Chúng ta hãy gọi chuỗi này là "Mẫu bit hài hòa" của một số. Ví dụ: HBP của e bắt đầu là:
1, 1, 1, 1, <32 times>, 0, 1, 1, <54 times>, 0, 1, 1, ...
Thử thách của bạn:
Bạn sẽ được:
- một mục tiêu đầu vào hợp lý trong phạm vi [-10, 10] (lưu ý: thậm chí đạt 10 thông qua chuỗi điều hòa cần nhiều triệu thuật ngữ). Đây có thể là số thập phân (aka
1.1) hoặc bạn có thể lấy lý do trực tiếp (aka12/100) - đầu vào
intn dương , chỉ định số lượng thuật ngữ của Mẫu bit hài hòa với đầu ra.
Bạn dự kiến sẽ xuất Mẫu bit hài hòa chính xác của mục tiêu sang số lượng điều khoản được chỉ định. Bạn có thể xuất các giá trị được phân tách bằng dấu cách, được phân tách bằng dấu phẩy, không phân tách, v.v; miễn là có thể nhìn thấy rõ mẫu 0 và 1 và được đọc từ trái sang phải với sự phân tách nhất quán.
Các trường hợp thử nghiệm
>>> 0, 1
1
>>> 0, 2
10
>>> 0, 7
1000010
>>> 1, 10
1101011011
>>> 1.01, 3
110
>>> 1.01, 24
110101101101101101101101
>>> 2.71, 32
11111111111111111111111111111111
>>> 2.71, 144
111111111111111111111111111111110111111111111111111111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111111
>>> -9.8, 100
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Lưu ý rằng vì -9.8quá lớn, đầu tiên 1sẽ là đầu ra ở đâu đó xung quanh 149496620thuật ngữ thứ (được tính toán thông qua số float, vì vậy giá trị có thể không chính xác).
h a p qthay vìh p q alưu một byte.