9
แยกแฟกทอเรียล
กอล์ฟนี้ต้องการการคำนวณแบบแฟคทอเรียลแยกเป็นหลายกลุ่มหรือหลายกระบวนการ บางภาษาทำให้การประสานงานนี้ง่ายกว่าภาษาอื่นดังนั้นจึงเป็นภาษาที่ไม่เชื่อเรื่องพระเจ้า มีการจัดเตรียมโค้ดตัวอย่างที่ไม่ได้รับการปรุงแต่ง แต่คุณควรพัฒนาอัลกอริทึมของคุณเอง เป้าหมายของการแข่งขันคือการดูว่าใครสามารถเกิดอัลกอริธึมมัลติคอร์แฟคทอเรียลที่สั้นที่สุด (เป็นไบต์ไม่กี่วินาที) สำหรับการคำนวณ N! วัดจากคะแนนโหวตเมื่อการประกวดปิด ควรมีข้อได้เปรียบแบบมัลติคอร์ดังนั้นเราจึงต้องการให้ใช้งานได้กับ N ~ 10,000 ผู้ลงคะแนนควรออกเสียงลงคะแนนหากผู้เขียนไม่สามารถให้คำอธิบายที่ถูกต้องเกี่ยวกับวิธีการเผยแพร่งานระหว่างโปรเซสเซอร์ / คอร์และลงคะแนนตามความกระชับของกอล์ฟ สำหรับความอยากรู้อยากเห็นกรุณาโพสต์ตัวเลขประสิทธิภาพบางอย่าง อาจมีคะแนนการปฏิบัติงานเทียบกับการแลกเปลี่ยนคะแนนของกอล์ฟในบางประเด็นไปกับการเล่นกอล์ฟตราบใดที่ตรงตามความต้องการ ฉันอยากรู้ว่าจะเกิดอะไรขึ้น คุณสามารถใช้ไลบรารีจำนวนเต็มแกนเดี่ยวขนาดใหญ่ที่มีอยู่ตามปกติ ตัวอย่างเช่น Perl มักจะติดตั้งด้วย bigint อย่างไรก็ตามโปรดทราบว่าเพียงแค่เรียกระบบที่มีฟังก์ชั่นแฟกทอเรียลจะไม่แยกงานออกเป็นหลายคอร์ คุณต้องยอมรับจาก STDIN หรือ ARGV อินพุต N และเอาต์พุตเพื่อ STDOUT ค่า N! คุณอาจเลือกใช้พารามิเตอร์อินพุตลำดับที่ 2 เพื่อระบุจำนวนตัวประมวลผล / แกนประมวลผลให้กับโปรแกรมดังนั้นจึงไม่ทำสิ่งที่คุณเห็นด้านล่าง :-) หรือคุณอาจออกแบบอย่างชัดเจนสำหรับ 2, 4 สิ่งที่คุณมีอยู่ ผมจะโพสต์ตัวอย่างลูกบอลในกอล์ฟ Perl ของตัวเองด้านล่างส่งมาก่อนหน้านี้ในกองมากเกินภายใต้ปัจจัยอัลกอริทึมในต่างภาษา มันไม่ใช่กอล์ฟ ตัวอย่างอื่น …
12
code-golf