quintopia ได้โพสต์ที่นี่ความท้าทายในการคำนวณค่าสัมประสิทธิ์ multinomial (ข้อความบางส่วนที่นี่ถูกคัดลอกมาจากที่นั่น) มีอัลกอริทึมที่สนุกในการคำนวณสัมประสิทธิ์ multinomial mod 2
รับรายการตัวเลขk 1 , k 2 , ... , k m , เอาท์พุทที่เหลือของสัมประสิทธิ์ multinomial:
ลดลง mod 2. ต่อไปนี้ขั้นตอนวิธีการนี้ไม่ได้อย่างมีประสิทธิภาพ: สำหรับแต่ละk ผมคำนวณการขยายตัวของฐานk ผม , ที่อยู่, หาIJเช่นกันว่าIJเป็น 1 หรือ 0
หากมีเจใด ๆ ดังกล่าวที่RJ = a SJ = 1สำหรับ R ≠ s แล้วเกี่ยวข้อง mod 2 ค่าสัมประสิทธิ์พหุนามคือ 0 มิฉะนั้น mod 2 ค่าสัมประสิทธิ์พหุนามเป็น 1
งาน
เขียนโปรแกรมหรือฟังก์ชั่นซึ่งใช้ตัวเลขm , k 1 , k 2 , ... , k mและเอาท์พุทหรือส่งกลับค่าสัมประสิทธิ์ multinomial ที่เกี่ยวข้อง โปรแกรมของคุณอาจเลือกที่จะใช้mเป็นอาร์กิวเมนต์เพิ่มเติมหากจำเป็น
ตัวเลขเหล่านี้อาจถูกป้อนเข้าในรูปแบบใดก็ตามที่มีคนชอบเช่นจัดกลุ่มเป็นรายการหรือเข้ารหัสในเอกหรือสิ่งอื่นตราบใดที่การคำนวณที่แท้จริงของสัมประสิทธิ์ multinomial จะดำเนินการโดยรหัสของคุณและไม่ใช่กระบวนการเข้ารหัส
เอาต์พุตสามารถเป็นค่าความจริงใด ๆ ถ้าค่าสัมประสิทธิ์ multinomial เป็นค่าคี่และค่าความเท็จใด ๆ ถ้าค่าสัมประสิทธิ์ multinomial เท่ากับ
ไม่สามารถใช้งานบิวด์อินที่ออกแบบมาเพื่อคำนวณสัมประสิทธิ์พหุนาม
ช่องโหว่มาตรฐานใช้
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟ: ทางออกที่สั้นที่สุดในการชนะไบต์
ตัวอย่าง:
ในการหาค่าสัมประสิทธิ์พหุนามเท่ากับ 7, 16, และ 1,000 เราจะขยายแต่ละฐานสอง:
เนื่องจากไม่มีคอลัมน์ใดมีมากกว่า 1 1 สัมประสิทธิ์ multinomial จึงเป็นเลขคี่และด้วยเหตุนี้เราจึงควรแสดงความจริงออกมา
ในการหาค่าสัมประสิทธิ์พหุนามเท่ากับ 7, 16 และ 76 เราจะทำการขยายเลขฐานสองแต่ละตัว:
เนื่องจากทั้ง 76 และ 7 มี 4 ในการขยายไบนารี่ของพวกเขาสัมประสิทธิ์พหุนามมีค่าเท่ากันดังนั้นเราจึงส่งออกค่าเท็จ
กรณีทดสอบ:
Input: [2, 0, 1]
Output: Truthy
Input: [5,4,3,2,1]
Output: Falsey
Input: [1,2,4,8,16]
Output: Truthy
Input: [7,16,76]
Output: Falsey
Input: [7,16,1000]
Output: Truthy
Input: [545, 1044, 266, 2240]
Output: Truthy
Input: [1282, 2068, 137, 584]
Output: Falsey
Input: [274728976, 546308480, 67272744, 135004166, 16790592, 33636865]
Output: Truthy
Input: [134285315, 33849872, 553780288, 544928, 4202764, 345243648]
Output: Falsey
==
เพื่อความเท่าเทียมกันสามารถบันทึกไบต์หากความจริงและความเท็จได้รับอนุญาตให้พลิก