สวัสดียามบ่ายนักกอล์ฟ
ความท้าทายของเราสำหรับวันนี้เป็นแรงบันดาลใจ XKCD การ์ตูน356และ370 เราจะเขียนโปรแกรมเพื่อคำนวณความต้านทานของกลุ่มตัวต้านทาน คำเตือนว่านี่เกือบจะยากพอที่จะรับประกันว่าเป็นความท้าทายด้านรหัส แต่ฉันคิดว่ามีบางศิลปะในการเขียนโปรแกรมที่ซับซ้อนขึ้นเล็กน้อยในรูปแบบ golfed จำนวนอักขระต่ำสุดชนะ
การคำนวณความต้านทานขึ้นอยู่กับสองสูตรดังต่อไปนี้:
- หากตัวต้านทานอยู่ในอนุกรมความต้านทานคือผลรวมของความต้านทานของตัวต้านทานแต่ละตัว
- หากตัวต้านทานเป็นแบบขนานความต้านทานคือค่าผกผันของผลรวมของค่าผกผันของความต้านทานของตัวต้านทานแต่ละตัว
ตัวอย่างเช่น:
ความท้าทายของคุณคือการคำนวณความต้านทานของกลุ่มตัวต้านทานได้มากถึง 64 ตัว ฉันขอโทษสำหรับความซับซ้อนโดยเฉพาะกฎการป้อนข้อมูล ฉันพยายามกำหนดให้เป็นแบบที่ทุกภาษาจะใช้งานได้
ตัวต้านทานแต่ละตัวจะเชื่อมต่อกับตัวต้านทานอื่น ๆ 2 ตัวหรือมากกว่า
อินพุตรับประกันว่าถูกต้องโดยมีเพียงหนึ่งรายการและหนึ่งจุดออกซึ่งจะเชื่อมต่อ
เครือข่ายจะขนานอนุกรมเพื่อป้องกันไม่ให้ต้องใช้คณิตศาสตร์มากขึ้นจากนั้นสิ่งที่จะนำเสนอ
การป้อนข้อมูลจะผ่านไฟล์อาร์กิวเมนต์หรือ stdin ขึ้นอยู่กับสิ่งที่เหมาะสมกับภาษาของคุณ
อินพุตจะประกอบด้วยชุดของประโยคขึ้นบรรทัดใหม่หรือเครื่องหมายทับซ้ายไปข้างหน้าซึ่งประกอบด้วยจำนวนเต็มของความต้านทานของตัวต้านทานและช่องว่างที่แยก ID ของตัวต้านทานที่ด้านหนึ่งของตัวต้านทานเชื่อมต่ออยู่
ID ของตัวต้านทานตัวแรกจะเป็น 1 เพิ่มขึ้นทีละหนึ่งสำหรับตัวต้านทานต่อเนื่องแต่ละตัว
การเริ่มต้นจะมี ID เป็น 0 เสมอ
ตัวต้านทานสุดท้ายจะมีความต้านทาน 0 โอห์มเสมอและมีการเชื่อมต่อที่กำหนดไว้ในสายของมันเท่านั้น
ตัวอย่างเช่น:
อาจแสดงว่า
3 0
6 1
1 0
5 0
0 2 3 4
- เอาต์พุตสามารถเป็น stdout หรือไฟล์ มันอาจจะเป็นหนึ่งในวิธีต่อไปนี้:
- ตัวเลขที่มีจุดทศนิยมอย่างน้อย 2 ตำแหน่งตามด้วย newline
- เศษส่วนที่ประกอบด้วยเลขจำนวนเต็ม (ตัวเศษ) ตัวส่งต่อและอีกจำนวนหนึ่ง (ตัวส่วน) ตามด้วยบรรทัดใหม่ เศษส่วนไม่จำเป็นต้องอยู่ในรูปแบบที่ต่ำที่สุด - 4/4 หรือ 10/8 เป็นตัวอย่างที่ยอมรับได้ เศษส่วนต้องแม่นยำภายใน 1/100 ไม่มีโบนัสสำหรับความแม่นยำที่สมบูรณ์แบบ - สิ่งนี้มีให้เพื่อสนับสนุนภาษาที่ไม่มีการดำเนินการจุดคงที่หรือลอยตัวเพื่อแข่งขัน
ฉันหวังว่าจะครอบคลุมทุกประเด็น โชคดี!
1 2/1 0/0 1
ถูกต้อง?
/
ไม่ใช่แบ็กสแลช คุณหมายถึง `` `หรือเครื่องหมายทับหน้าหรือไม่