พื้นหลัง
คำถามนี้จะคล้ายกับคนนี้ ฉันได้ให้ข้อมูลทั้งหมดที่จำเป็นด้านล่าง หากคุณคุ้นเคยกับความท้าทายอื่น ๆ โปรดทราบว่าเราจัดอันดับการป้องกันทั้งหมดแทนที่จะดูประสิทธิภาพของการโจมตีเพียงครั้งเดียว สิ่งนี้สำคัญเนื่องจากหมายความว่าตารางเป็นผกผันซึ่งกันและกันและเป้าหมายของการท้าทายนี้คือต้องไม่มีผู้ใช้ป้อนข้อมูล
ในโปเกมอนมีทั้งหมด 18 ชนิด:
Normal Fighting Flying Poison Ground Rock
Bug Ghost Steel Fire Water Grass
Electric Psychic Ice Dragon Dark Fairy
โปเกมอนมีประเภทที่ไม่ซ้ำกันหนึ่งหรือสองอย่างที่กำหนดไว้ ("การรวมประเภท") ตัวอย่างเช่น Bulbasaur มีการผสมผสานประเภท Grass / Poison (มีสองประเภทคือ Grass และ Poison) และ Charmander มีการรวมประเภท Fire (มีเพียงหนึ่งประเภท) ลำดับของประเภทไม่สำคัญ (เช่นหญ้า / พิษเหมือนกันกับพิษ / หญ้า)
ประเภทเหล่านี้ล้วนมีจุดแข็งและจุดอ่อน:
- ประเภทอาจอ่อนแอต่อประเภทอื่น ไฟอ่อนต่อน้ำ ส่งผลให้เกิดเพลิงไหม้โดยเพิ่มทวีคูณเป็น 2 เท่าเมื่อเทียบกับน้ำ
- ประเภทสามารถทนต่อประเภทอื่น น้ำทนต่อน้ำ ส่งผลให้น้ำมี 0.5 เท่าคูณกับน้ำ
- ประเภทสามารถภูมิคุ้มกันต่อประเภทอื่น การบินเป็นภูมิคุ้มกันต่อพื้นดิน สิ่งนี้ส่งผลให้ Flying มีตัวคูณ 0 ×เทียบกับกราวด์
สิ่งใดก็ได้รับตัวคูณ 1 ×มาตรฐาน ปกติกับปกติจะส่งผลให้ตัวคูณ 1 ×เป็นตัวอย่างของสิ่งนี้ จุดแข็งและจุดอ่อนเหล่านี้สามารถทบต้นหรือคัดค้านได้เช่นกัน ตัวอย่างเช่นไฟจะอ่อนแอต่อน้ำ แต่ไฟ / น้ำสองประเภทจะมีตัวคูณ 1 ต่อน้ำตั้งแต่จุดอ่อนจากไฟจะลบความต้านทานจากน้ำ สำหรับตารางเต็มและคำอธิบายเพิ่มเติมดูด้านล่าง
วัตถุประสงค์
เป้าหมายที่นี่คือการส่งออกรายการชุดค่าผสมทุกประเภทเรียงตามลำดับความสามารถในการป้องกันและรายการหมายเลข (ความต้านทาน + ภูมิต้านทาน) จุดอ่อนและอัตราส่วนระหว่างสิ่งเหล่านี้ โดยเฉพาะอย่างยิ่งลำดับการเรียงจะเป็นดังนี้: การผสมประเภทที่มีอัตราส่วนที่ดีที่สุดของ (ความต้านทาน + ภูมิคุ้มกัน) ต่อความอ่อนแอมีการระบุไว้เป็นอันดับแรกและหากมีการเสมอกันการผสมประเภทที่มีความต้านทานและภูมิคุ้มกันมากที่สุดจะชนะการเบรค คุณสามารถสร้างรายการนี้ได้ด้วยวิธีการใด ๆ (วิธีที่ชัดเจนคือการคำนวณประสิทธิภาพการพิมพ์กับชุดค่าผสมแต่ละประเภท แต่คุณได้รับอนุญาตให้เก็บเอาต์พุตที่คำนวณล่วงหน้าหรือคำนวณล่วงหน้าบางส่วนในโปรแกรมของคุณหากทำเช่นนี้จะทำให้สั้นลง)
พิมพ์ตารางประสิทธิผล
สำหรับตารางที่มนุษย์อ่านได้ให้ดูฐานข้อมูลโปเกมอน หมายเหตุ: คอลัมน์ของรายการนี้คือสิ่งที่เรากำลังพิจารณา แต่ในกรณีนี้นี่คือตารางที่ฉันนึกถึงในเมทริกซ์ประสิทธิภาพที่เป็นมิตรกับคอมพิวเตอร์ที่ถูกบีบอัด ฉันคูณทุกค่าด้วย 2 เราจึงไม่ต้องจัดการกับทศนิยมที่น่ารำคาญ:
Attacking type
(same order)
Nor 222222422222202222
Fir 214211224221422211
D Wat 211441222222222212
e Ele 222122224122222212
f Gra 241114241424222222
e Ice 242221422222422242
n Fig 222222222441122124
d Poi 222212114241222221
i Gro 224044212222122222
n Fly 222414120221422222
g Psy 222222122214242422
Bug 242212121422422222
T Roc 114242414122222242
y Gho 022222012221242422
p Dra 211114222222224224
e Dar 222222422204212124
Ste 142211404111121211
Fai 222222142221220142
ตัวอย่าง
หากปัญหานี้มีการร้องขอเอาท์พุทสำหรับชุดค่าผสมชนิดเดียวเท่านั้นผลลัพธ์ที่ถูกต้องจะมีลักษณะดังนี้:
Steel -> 11/3 = 3.66
Electric -> 3/1 = 3
Poison -> 5/2 = 2.5
Fire -> 6/3 = 2
Water -> 4/2 = 2
Ghost -> 4/2 = 2
Fairy -> 4/2 = 2
Fly -> 4/3 = 1.333
Dragon -> 4/3 = 1.333
Fighting -> 3/3 = 1
Normal -> 1/1 = 1
Ground -> 3/3 = 1
Psychic -> 2/2 = 1
Bug -> 3/3 = 1
Dark -> 3/3 = 1
Grass -> 4/5 = 0.8
Rock -> 4/5 = 0.8
Ice -> 1/4 = 0.25
อย่างไรก็ตามโปรแกรมของคุณจะต้องแสดงรายการชุดค่าผสมสองชนิดทั้งหมดในเอาต์พุตดังนั้นเอาต์พุตของมันจะยาวขึ้นอย่างมาก
ขอให้โชคดี! รหัสที่สั้นที่สุดเป็นไบต์ชนะ