Thời gian cho một thử thách dễ dàng khác trong đó tất cả có thể tham gia!
Biểu thức trong ngoặc là hệ số đa thức, được định nghĩa là:
Việc cho phép các thuật ngữ k i phạm vi trên tất cả các phân vùng số nguyên của n sẽ cung cấp cấp thứ n của m -simplex của Pascal . Nhiệm vụ của bạn là tính toán hệ số này.
Bài tập
Viết chương trình hoặc hàm lấy m số, n , k 1 , k 2 , ..., k m - 1 và xuất hoặc trả về hệ số đa thức tương ứng. Chương trình của bạn có thể tùy chọn lấy m làm đối số bổ sung nếu cần. Lưu ý rằng k m không có trong đầu vào.
Các số này có thể được nhập theo bất kỳ định dạng nào mà một lượt thích, ví dụ được nhóm thành các danh sách hoặc được mã hóa theo dạng đơn nhất hoặc bất cứ thứ gì khác, miễn là tính toán thực tế của hệ số đa phương thức được thực hiện bởi mã của bạn chứ không phải quá trình mã hóa.
Định dạng đầu ra là linh hoạt tương tự.
Tất cả các mã sẽ chạy trong ít hơn một phút cho n và m lên đến 1000.
Đừng lo lắng về tràn số nguyên.
Không được phép xây dựng để tính toán hệ số đa cực.
Tiêu chuẩn áp dụng.
Chấm điểm
Đây là mã golf: Giải pháp ngắn nhất trong byte thắng.
Các trường hợp thử nghiệm
Input: 3, [2, 0]
Output: 3
Input: 3, [1, 1]
Output: 6
Input: 11, [1, 4, 4]
Output: 34650
Input: 4, [1,2]
Output: 12
Input: 15, [5,4,3,2]
Output: 37837800
Input: 95, [65,4,4]
Output: 1934550571913396675776550070308250
Input: 32, [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
Output: 4015057936610313875842560000000
Input: 15, [3,3,3,3]
Output: 168168000
Input: 1000, [10,10,10,10,10,10,10,10,10,10,100,100,100,100,100,100,100,100]
Output: 1892260836114766064839886173072628322819837473493540916521650371620708316292211493005889278395285403318471457333959691477413845818795311980925098433545057962732816261282589926581281484274178579110373517415585990780259179555579119249444675675971136703240347768185200859583936041679096016595989605569764359198616300820217344233610087468418992008471158382363562679752612394898708988062100932765563185864346460326847538659268068471585720069159997090290904151003744735224635733011050421493330583941651019570222984959183118891461330718594645532241449810403071583062752945668937388999711726969103987467123014208575736645381474142475995771446030088717454857668814925642941036383273459178373839445456712918381796599882439216894107889251444932486362309407245949950539480089149687317762667940531452670088934094510294534762190299611806466111882595667632800995865129329156425174586491525505695534290243513946995156554997365435062121633281021210807821617604582625046557789259061566742237246102255343862644466345335421894369143319723958653232683916869615649006682399919540931573841920000000000000
Input: 33, [17]
Output: 1166803110
Input: 55, [28]
Output: 3824345300380220
[1000 {999 ones}]
, bởi vì số mũ vượt xa những gì số float 64 bit có thể đại diện. (Số float 128 bit có thể sẽ đủ, nhưng tôi giả sử bạn muốn sử dụng loại số gốc của JavaScript?)
1934550571913396675776550070308250
, chúng ta có thể đầu ra1.9345505719133966e+33
?