ถึงเวลาสำหรับความท้าทายง่ายๆที่ทุกคนสามารถเข้าร่วม!
การแสดงออกในวงเล็บคือสัมประสิทธิ์พหุนามซึ่งกำหนดเป็น:
การอนุญาตให้เงื่อนไขk i อยู่ในช่วงของพาร์ติชันจำนวนเต็มทั้งหมดของnทำให้ระดับn -th ของm -simplex ของปาสคาล งานของคุณคือการคำนวณค่าสัมประสิทธิ์นี้
งาน
เขียนโปรแกรมหรือฟังก์ชั่นซึ่งใช้ตัวเลขm , n , k 1 , k 2 , ... , k m-1และเอาท์พุทหรือส่งกลับค่าสัมประสิทธิ์พหุนามที่สอดคล้องกัน โปรแกรมของคุณอาจเลือกที่จะใช้mเป็นอาร์กิวเมนต์เพิ่มเติมหากจำเป็น โปรดทราบว่าk mไม่ได้อยู่ในอินพุต
ตัวเลขเหล่านี้อาจถูกป้อนเข้าในรูปแบบใด ๆ ที่คนชอบเช่นจัดกลุ่มเป็นรายการหรือเข้ารหัสในเอกหรือสิ่งอื่นตราบใดที่การคำนวณที่แท้จริงของสัมประสิทธิ์ multinomial จะดำเนินการโดยรหัสของคุณและไม่ใช่กระบวนการเข้ารหัส
รูปแบบผลลัพธ์มีความยืดหยุ่นในทำนองเดียวกัน
รหัสทั้งหมดควรทำงานในเวลาน้อยกว่าหนึ่งนาทีสำหรับnและmสูงถึง 1,000
ไม่ต้องกังวลเกี่ยวกับจำนวนเต็มล้น
ไม่สามารถใช้งานบิวด์อินที่ออกแบบมาเพื่อคำนวณสัมประสิทธิ์พหุนาม
ช่องโหว่มาตรฐานใช้
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟ: ทางออกที่สั้นที่สุดในการชนะไบต์
กรณีทดสอบ
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}]
ได้เลยเพราะเลขชี้กำลังเป็นวิธีที่เกินกว่าจำนวนโฟลตแบบ 64 บิต (128 บิตลอยอาจจะพอเพียง แต่ฉันสมมติว่าคุณต้องการที่จะใช้ชนิดจำนวนพื้นเมืองของ JavaScript?)
1934550571913396675776550070308250
เราสามารถส่งออก1.9345505719133966e+33
?