Xấp xỉ hằng số Fransén-Robinson


9

Đưa ra một đầu vào n, xuất giá trị của hằng số Fransén-Robinson với các nchữ số sau vị trí thập phân, với làm tròn.

Quy tắc

  • Bạn có thể cho rằng tất cả các đầu vào là số nguyên trong khoảng từ 1 đến 60.
  • Bạn không được lưu trữ bất kỳ giá trị liên quan nào - hằng số phải được tính toán, không được gọi lại.
  • Làm tròn phải được thực hiện với các tiêu chí sau:
    • Nếu chữ số theo sau chữ số cuối cùng nhỏ hơn năm, chữ số cuối cùng phải giữ nguyên.
    • Nếu chữ số theo sau chữ số cuối cùng lớn hơn hoặc bằng năm, chữ số cuối cùng phải được tăng thêm một.
  • Bạn chỉ phải xuất các n+1chữ số đầu tiên .
  • Tiêu chuẩn áp dụng.

Các trường hợp thử nghiệm

>>> f(0)
3

>>> f(1)
2.8

>>> f(11)
2.80777024203

>>> f(50)
2.80777024202851936522150118655777293230808592093020

>>> f(59)
2.80777024202851936522150118655777293230808592093019829122005

>>> f(60)
2.807770242028519365221501186557772932308085920930198291220055

Điều gì nếu bạn không có hỗ trợ cho phao chính xác tùy ý?
flawr

1
@flawr Tôi cho rằng ngôn ngữ sẽ phải sử dụng một số dạng nối chuỗi hoặc tương tự. Nếu không, nó có thể không phải là ngôn ngữ cho thử thách này.
Addison Crump

Quá tệ, về cơ bản chỉ còn lại chúng ta với việc mã hóa các con số. PS: Tại sao bạn không thêm f(60)vào các trường hợp thử nghiệm? Bằng cách đó, người tham gia sẽ không phải tìm nạp bên ngoài =)
flawr

@flawr Hardcoding không được phép theo quy tắc 2.
Addison Crump

Các số 0 có ổn không?
Mego

Câu trả lời:


7

Toán học, 44 39 36 25 UTF-8 byte

  • -5 byte nhờ Sp3000
  • -3 byte nhờ kennytm
  • -11 byte nhờ senegrom

Vượt qua 44 vẫn là 44 thường xuyên !!

N[∫1/x!{x,-1,∞},#+1]&

Thí dụ:

f=N[∫1/x!{x,-1,∞},#+1]&
f[2]

Đầu ra 2.81.

Giải trình

N[               , # + 1] 
  ∫1/x!{x,-1,∞}

Bước đầu tiên mất Nnhiều thời gian còn lại, với #(tham số đầu tiên) + 1 độ chính xác. !(giai thừa) làm những gì bạn mong đợi. {x, -1, Infinity}đặt giới hạn cho Tích phân (được định dạng lạ).


Tôi không thể kiểm tra điều này, vì vậy tôi giả sử vòng này là chính xác?
Addison Crump

1
@VTCAKAVSMoACE Tôi đã kiểm tra n = 60, nó làm tròn chính xác. (Chữ 61số st là một 8). Bạn có thể xem tài liệu của Wolfram N.
NoOneIsHãy

Coolio. Chỉ cần kiểm tra.
Addison Crump

Bạn có thể có thể sử dụng một nghĩa đen thay cho Infinity. Tôi khuyên bạn nên chia cho 0, nếu điều đó không tạo ra ComplexInfinitythay thế ...
Sp3000

1
cố gắng N[∫1/x!{x,-1,∞},#+1]&là Unicode-F74C; hiển thị như 𝕕trong Mathicala. (lưu ý rằng không gian trước đó &cũng không cần thiết ...)
senegrom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.