Lý lịch
Câu hỏi này tương tự như câu hỏi này . Tôi đã cung cấp tất cả các thông tin cần thiết dưới đây. Nếu bạn đã quen thuộc với thử thách khác thì hãy lưu ý rằng chúng tôi đang xếp hạng tất cả các phòng thủ thay vì thấy hiệu quả của một cuộc tấn công duy nhất. Điều này rất quan trọng vì nó có nghĩa là các bảng là nghịch đảo của nhau và mục tiêu của thách thức này là không có đầu vào của người dùng.
Trong Pokemon có 18 loại:
Normal Fighting Flying Poison Ground Rock
Bug Ghost Steel Fire Water Grass
Electric Psychic Ice Dragon Dark Fairy
Pokemon có một hoặc hai loại duy nhất xác định chúng ("kết hợp loại"). Ví dụ, một Bulbasaur có loại kết hợp Grass / Poison (nó có hai loại, Grass và Poison) và một Charmander có loại kết hợp Lửa (chỉ có một loại). Thứ tự của các loại không quan trọng (ví dụ: Grass / Poison giống như Poison / Grass).
Những loại này đều có điểm mạnh và điểm yếu:
- Một loại có thể yếu đến loại khác. Lửa yếu chống nước. Điều này dẫn đến việc Lửa có hệ số nhân 2 × so với Nước.
- Một loại có thể kháng với loại khác. Nước có khả năng chống nước. Điều này dẫn đến việc Nước có hệ số nhân 0,5 × so với Nước.
- Một loại có thể miễn dịch với loại khác. Bay là miễn dịch với mặt đất. Điều này dẫn đến việc Flying có hệ số nhân 0 × so với mặt đất.
Bất cứ điều gì khác nhận được một số nhân 1 × tiêu chuẩn. Bình thường so với Bình thường sẽ dẫn đến hệ số nhân 1 × là một ví dụ về điều này. Những điểm mạnh và điểm yếu này cũng có thể được kết hợp hoặc phủ định. Ví dụ: Lửa yếu với Nước nhưng loại kép Lửa / Nước sẽ có hệ số nhân 1 × so với Nước vì điểm yếu từ Lửa sẽ phủ nhận lực cản từ Nước. Đối với một bảng đầy đủ và giải thích thêm, xem bên dưới.
Mục tiêu
Mục tiêu ở đây là đưa ra một danh sách tất cả các loại kết hợp, được sắp xếp theo thứ tự khả năng phòng thủ của chúng và liệt kê số lượng (điện trở + miễn trừ), điểm yếu và tỷ lệ giữa chúng. Cụ thể, thứ tự sắp xếp như sau: loại kết hợp có tỷ lệ (điện trở + miễn trừ) tốt nhất với điểm yếu được liệt kê đầu tiên và nếu có hòa, loại kết hợp có nhiều điện trở và miễn trừ nhất sẽ thắng hòa. Bạn có thể tạo danh sách này thông qua bất kỳ phương tiện nào (một phương pháp rõ ràng là thực hiện tính toán hiệu quả loại đối với từng kết hợp loại, nhưng bạn được phép lưu trữ đầu ra được tính toán trước hoặc một phần trong chương trình của mình nếu làm như vậy sẽ làm cho nó ngắn hơn.)
Loại bảng hiệu quả
Để biết bảng có thể đọc được của con người, hãy xem cơ sở dữ liệu Pokemon. Lưu ý: các cột của danh sách này là những gì chúng tôi đang xem xét. Nhưng chỉ trong trường hợp, đây là bảng tôi đang nghĩ đến trong một ma trận hiệu quả thân thiện với máy tính nén. Tôi đã nhân mọi giá trị lên 2 lần để chúng tôi không phải đối phó với số thập phân phiền phức:
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
Thí dụ
Nếu sự cố này chỉ yêu cầu đầu ra cho các kết hợp loại đơn, thì đầu ra hợp lệ sẽ giống như sau:
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
Tuy nhiên, chương trình của bạn cũng sẽ cần liệt kê tất cả các kết hợp loại kép trong đầu ra, do đó đầu ra của nó sẽ dài hơn đáng kể.
May mắn nhất! Mã ngắn nhất trong byte thắng.