Các loại Pokemon bền nhất


9

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.



3
Và chào mừng bạn đến với PPCG! :)
Martin Ender

1
Tôi nghĩ rằng điều này có một vấn đề rõ ràng là câu trả lời nhỏ hơn dữ liệu cần thiết để giải quyết câu hỏi, và do đó, một giải pháp chiến thắng sẽ chỉ mã hóa đầu ra. Để giải quyết vấn đề, có lẽ bạn cần thay đổi thử thách để lấy ma trận hiệu quả loại làm đầu vào khi chạy.

@ ais523 Tôi tin rằng việc nén ma trận được cho là cốt lõi của thử thách và về nguyên tắc tôi không thấy có gì sai với điều đó (mặc dù trong trường hợp này, thật không may, bảng chính xác này đã là chủ đề của thử thách trước đó).
Martin Ender

2
@MartinEnder Nó liên quan nhiều hơn ... Nếu bạn xem qua phần giới thiệu, nó được sao chép 100% và sau đó được thay đổi để trông không giống như được sao chép. Nó theo cùng một cấu trúc chính xác, các loại bắt đầu theo cùng một thứ tự, được định dạng giống nhau. Nó chỉ đạo văn trắng trợn mà không đề cập đến nó và cố gắng che giấu nó.
orlp

Câu trả lời:


2

Python 2, 784 byte

i=['Normal','222222422222202222'],['Fire','214211224221422211'],['Water','211441222222222212'],['Electric','222122224122222212'],['Grass','241114241424222222'],['Ice','242221422222422242'],['Fighting','222222222441122124'],['Poison','222212114241222221'],['Ground','224044212222122222'],['Flying','222414120221422222'],['Psychic','222222122214242422'],['Bug','242212121422422222'],['Rock','114242414122222242'],['Ghost','022222012221242422'],['Dragon','211114222222224224'],['Dark','222222422204212124'],['Steel','142211404111121211'],['Fairy','222222142221220142']
L=[]
for x,X in i:
 for y,Y in i[i.index([x,X]):]:
  S=W=0.
  for a,b in zip(X,Y):A=int(a)*int(b);W+=A>4;S+=A<4
  L+=[([x+'/'+y,x][x==y]+' -> %d/%d'%(S,W),S/W)]
for l in sorted(L, key=lambda l:-l[1]):print'%s = %.2f'%l

Đầu ra:

Bug/Steel -> 9/1 = 9.00
Steel/Fairy -> 11/2 = 5.50
Normal/Ghost -> 5/1 = 5.00
Water/Ground -> 5/1 = 5.00
Grass/Steel -> 10/2 = 5.00
Poison/Dark -> 5/1 = 5.00
Poison/Steel -> 10/2 = 5.00
Flying/Steel -> 10/2 = 5.00
Dragon/Steel -> 10/2 = 5.00
Normal/Steel -> 12/3 = 4.00
Electric/Poison -> 8/2 = 4.00
Electric/Steel -> 12/3 = 4.00
Ghost/Dark -> 4/1 = 4.00
Water/Steel -> 11/3 = 3.67
Dark/Steel -> 11/3 = 3.67
Steel -> 11/3 = 3.67
Fire/Steel -> 10/3 = 3.33
Fire/Ground -> 6/2 = 3.00
Water/Flying -> 6/2 = 3.00
Electric -> 3/1 = 3.00
Electric/Flying -> 6/2 = 3.00
Electric/Fairy -> 6/2 = 3.00
Ice/Steel -> 9/3 = 3.00
Fighting/Steel -> 9/3 = 3.00
Rock/Steel -> 9/3 = 3.00
Ghost/Steel -> 12/4 = 3.00
Fire/Electric -> 8/3 = 2.67
Water/Poison -> 8/3 = 2.67
Normal/Poison -> 5/2 = 2.50
Water/Electric -> 5/2 = 2.50
Poison -> 5/2 = 2.50
Ground/Flying -> 5/2 = 2.50
Ground/Steel -> 10/4 = 2.50
Psychic/Steel -> 10/4 = 2.50
Fire/Flying -> 7/3 = 2.33
Water/Fairy -> 7/3 = 2.33
Electric/Ghost -> 7/3 = 2.33
Normal/Electric -> 4/2 = 2.00
Normal/Fairy -> 4/2 = 2.00
Fire -> 6/3 = 2.00
Fire/Poison -> 8/4 = 2.00
Fire/Bug -> 6/3 = 2.00
Fire/Fairy -> 8/4 = 2.00
Water -> 4/2 = 2.00
Water/Ghost -> 8/4 = 2.00
Electric/Bug -> 4/2 = 2.00
Fighting/Poison -> 6/3 = 2.00
Poison/Fairy -> 6/3 = 2.00
Psychic/Ghost -> 4/2 = 2.00
Ghost -> 4/2 = 2.00
Ghost/Fairy -> 4/2 = 2.00
Dragon/Fairy -> 8/4 = 2.00
Fairy -> 4/2 = 2.00
Fire/Ghost -> 9/5 = 1.80
Normal/Fire -> 7/4 = 1.75
Fire/Rock -> 7/4 = 1.75
Fire/Dark -> 7/4 = 1.75
Poison/Dragon -> 7/4 = 1.75
Normal/Water -> 5/3 = 1.67
Fire/Water -> 5/3 = 1.67
Fire/Dragon -> 5/3 = 1.67
Water/Bug -> 5/3 = 1.67
Electric/Fighting -> 5/3 = 1.67
Ghost/Dragon -> 8/5 = 1.60
Fire/Fighting -> 6/4 = 1.50
Water/Dragon -> 3/2 = 1.50
Electric/Dragon -> 6/4 = 1.50
Electric/Dark -> 6/4 = 1.50
Poison/Ground -> 6/4 = 1.50
Poison/Flying -> 6/4 = 1.50
Poison/Rock -> 6/4 = 1.50
Poison/Ghost -> 6/4 = 1.50
Ground/Fairy -> 6/4 = 1.50
Flying/Dragon -> 6/4 = 1.50
Rock/Fairy -> 6/4 = 1.50
Fire/Psychic -> 7/5 = 1.40
Water/Fighting -> 7/5 = 1.40
Water/Dark -> 7/5 = 1.40
Grass/Fairy -> 7/5 = 1.40
Fighting/Dragon -> 7/5 = 1.40
Dragon/Dark -> 7/5 = 1.40
Normal/Flying -> 4/3 = 1.33
Fire/Grass -> 4/3 = 1.33
Fighting/Dark -> 4/3 = 1.33
Poison/Psychic -> 4/3 = 1.33
Ground/Dragon -> 4/3 = 1.33
Flying -> 4/3 = 1.33
Dragon -> 4/3 = 1.33
Dark/Fairy -> 4/3 = 1.33
Normal/Dragon -> 5/4 = 1.25
Water/Rock -> 5/4 = 1.25
Electric/Ground -> 5/4 = 1.25
Electric/Psychic -> 5/4 = 1.25
Electric/Rock -> 5/4 = 1.25
Grass/Poison -> 5/4 = 1.25
Fighting/Bug -> 5/4 = 1.25
Fighting/Ghost -> 5/4 = 1.25
Poison/Bug -> 5/4 = 1.25
Flying/Dark -> 5/4 = 1.25
Water/Psychic -> 6/5 = 1.20
Grass/Ghost -> 6/5 = 1.20
Ground/Ghost -> 6/5 = 1.20
Flying/Rock -> 6/5 = 1.20
Flying/Ghost -> 6/5 = 1.20
Flying/Fairy -> 6/5 = 1.20
Bug/Ghost -> 6/5 = 1.20
Bug/Fairy -> 6/5 = 1.20
Normal -> 1/1 = 1.00
Normal/Fighting -> 4/4 = 1.00
Normal/Ground -> 4/4 = 1.00
Normal/Psychic -> 2/2 = 1.00
Normal/Bug -> 3/3 = 1.00
Normal/Rock -> 5/5 = 1.00
Normal/Dark -> 3/3 = 1.00
Fire/Ice -> 4/4 = 1.00
Water/Grass -> 3/3 = 1.00
Electric/Grass -> 4/4 = 1.00
Grass/Fighting -> 6/6 = 1.00
Grass/Dark -> 7/7 = 1.00
Ice/Poison -> 5/5 = 1.00
Ice/Ghost -> 5/5 = 1.00
Ice/Fairy -> 4/4 = 1.00
Fighting -> 3/3 = 1.00
Fighting/Flying -> 5/5 = 1.00
Fighting/Fairy -> 5/5 = 1.00
Ground -> 3/3 = 1.00
Ground/Bug -> 4/4 = 1.00
Ground/Rock -> 6/6 = 1.00
Ground/Dark -> 6/6 = 1.00
Psychic/Dragon -> 6/6 = 1.00
Psychic/Fairy -> 3/3 = 1.00
Bug -> 3/3 = 1.00
Bug/Dragon -> 5/5 = 1.00
Bug/Dark -> 5/5 = 1.00
Rock/Ghost -> 6/6 = 1.00
Rock/Dark -> 7/7 = 1.00
Dark -> 3/3 = 1.00
Grass/Psychic -> 6/7 = 0.86
Fighting/Rock -> 6/7 = 0.86
Normal/Grass -> 5/6 = 0.83
Grass/Bug -> 5/6 = 0.83
Fighting/Ground -> 5/6 = 0.83
Ground/Psychic -> 5/6 = 0.83
Rock/Dragon -> 5/6 = 0.83
Grass -> 4/5 = 0.80
Grass/Flying -> 4/5 = 0.80
Flying/Psychic -> 4/5 = 0.80
Flying/Bug -> 4/5 = 0.80
Rock -> 4/5 = 0.80
Electric/Ice -> 3/4 = 0.75
Grass/Ground -> 3/4 = 0.75
Ice/Flying -> 3/4 = 0.75
Ice/Bug -> 3/4 = 0.75
Psychic/Rock -> 5/7 = 0.71
Grass/Dragon -> 4/6 = 0.67
Ice/Rock -> 4/6 = 0.67
Ice/Dark -> 4/6 = 0.67
Fighting/Psychic -> 2/3 = 0.67
Psychic -> 2/3 = 0.67
Psychic/Bug -> 4/6 = 0.67
Bug/Rock -> 2/3 = 0.67
Ice/Dragon -> 3/5 = 0.60
Grass/Ice -> 4/7 = 0.57
Normal/Ice -> 2/4 = 0.50
Water/Ice -> 2/4 = 0.50
Grass/Rock -> 2/4 = 0.50
Ice/Fighting -> 3/6 = 0.50
Psychic/Dark -> 1/2 = 0.50
Ice/Ground -> 2/5 = 0.40
Ice/Psychic -> 2/6 = 0.33
Ice -> 1/4 = 0.25

Tuyệt vời. Chính xác những gì tôi muốn. Cảm ơn bạn đời!
Devin White
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.