Các thách thức
Số nhựa là một số liên quan đến tỷ lệ vàng, với nhiều tính chất toán học thú vị. Như vậy, có nhiều cách tiếp cận có thể được sử dụng để tính toán số lượng.
Để chỉ định chính xác số cho mục đích của thử thách này, chúng tôi sẽ sử dụng định nghĩa sau (mặc dù có rất nhiều định nghĩa tương đương và bạn có thể sử dụng bất kỳ định nghĩa nào bạn muốn miễn là cùng số đó):
Số nhựa là một số thực ρ như rằng ρ ³ = ρ 1.
Thách thức của bạn là viết một chương trình hoặc chức năng mà phải mất một số nguyên x như là đầu vào (với x > 1), và tạo ra một xấp xỉ để ρ như đầu ra, như vậy mà càng lớn thì giá trị của x được, càng gần đầu ra được đến ρ ( với ít nhất hữu hạn nhiều ngoại lệ; tạm trú tại đếm giá trị tương tự như "gần gũi" cho mục đích này), và đối với bất kỳ số dương δ , có một số đầu vào x để chương trình của bạn mà tạo ra một đầu ra rằng trong vòng δ của ρ .
Làm rõ
- Nếu bạn xuất ra thông qua một phương thức vốn xuất ra các chuỗi (ví dụ: luồng đầu ra tiêu chuẩn), bạn có thể định dạng đầu ra ở dạng thập phân (ví dụ
1.3247179572
) hoặc theo tỷ lệ của hai số nguyên với một/
ký tự giữa chúng. - Nếu bạn xuất ra dưới dạng một giá trị trong ngôn ngữ lập trình của bạn (ví dụ: trả về từ một hàm), thì đó phải là loại điểm cố định, dấu phẩy động hoặc loại hợp lý. (Cụ thể, bạn không thể sử dụng các loại dữ liệu lưu trữ số một cách tượng trưng, trừ khi chúng chỉ được sử dụng để giữ tỷ lệ của hai số nguyên. Vì vậy, nếu bạn đang sử dụng Mathicala hoặc một ngôn ngữ tương tự, bạn sẽ cần bao gồm thêm mã để thực sự tạo ra các chữ số của đầu ra.)
- Câu trả lời của bạn phải hoạt động theo một biến thể giả định của ngôn ngữ của bạn, trong đó số nguyên có thể lớn tùy ý và bộ nhớ (bao gồm cả ngăn xếp) là không giới hạn. Bạn không được cho rằng số học dấu phẩy động trong ngôn ngữ của mình là chính xác tùy ý, nhưng thay vào đó phải sử dụng độ chính xác thực tế của nó (có nghĩa là việc xuất ra một số dấu phẩy động chỉ có thể có trong các ngôn ngữ có thể có độ chính xác của các số dấu phẩy động kiểm soát lúc chạy).
- x có thể có bất kỳ ý nghĩa nào bạn muốn (miễn là tăng nó sẽ cho đầu ra chính xác hơn). Tôi tưởng tượng rằng hầu hết các bài nộp sẽ kiểm soát số chữ số đầu ra để tạo ra hoặc số lần lặp của thuật toán được sử dụng bởi chương trình của bạn để hội tụ số nhựa, nhưng các ý nghĩa khác đều được chấp nhận.
Testcase
Dưới đây là một vài chữ số đầu tiên của số nhựa:
1.32471795724474602596090885
Nhiều chữ số có sẵn trên OEIS .
Điều kiện chiến thắng
Như thường lệ đối với môn đánh gôn , ngắn hơn là tốt hơn, được đo bằng byte. Tuy nhiên, vui lòng gửi câu trả lời ngay cả khi họ không giành chiến thắng, miễn là họ thêm một cái gì đó (ví dụ: một ngôn ngữ khác hoặc thuật toán khác) vào các câu trả lời hiện có.