Latar Belakang
Pertanyaan ini mirip dengan yang ini . Saya telah memberikan semua informasi yang dibutuhkan di bawah ini. Jika Anda terbiasa dengan tantangan lain maka catat bahwa kami memberi peringkat semua pertahanan alih-alih melihat efektivitas serangan tunggal. Ini penting karena itu berarti bahwa tabel adalah kebalikan dari satu sama lain dan tujuan dari tantangan ini adalah tanpa masukan pengguna.
Di Pokemon ada 18 jenis:
Normal Fighting Flying Poison Ground Rock
Bug Ghost Steel Fire Water Grass
Electric Psychic Ice Dragon Dark Fairy
Pokemon memiliki satu atau dua tipe unik yang mendefinisikannya ("kombinasi tipe"). Misalnya, Bulbasaur memiliki kombinasi jenis Rumput / Racun (memiliki dua jenis, Rumput dan Racun) dan Charmander memiliki kombinasi tipe Api (hanya memiliki satu jenis). Urutan jenis tidak masalah (yaitu Rumput / Racun sama dengan Racun / Rumput).
Semua tipe ini memiliki kekuatan dan kelemahan:
- Suatu tipe bisa menjadi lemah untuk tipe yang lain. Api lemah terhadap Air. Ini menghasilkan Api yang memiliki pengali 2 × terhadap Air.
- Suatu tipe bisa tahan terhadap tipe yang lain. Air tahan terhadap Air. Ini menghasilkan Air yang memiliki pengali 0,5 × terhadap Air.
- Suatu tipe dapat kebal terhadap tipe lain. Terbang kebal terhadap Ground. Ini menyebabkan Flying memiliki pengali 0 × terhadap Ground.
Yang lainnya menerima pengali 1 × standar. Normal terhadap Normal akan menghasilkan pengali 1 × adalah contohnya. Kekuatan dan kelemahan ini dapat diperparah atau dinegasikan juga. Sebagai contoh, Api lemah untuk Air tetapi api / Water tipe ganda akan memiliki 1 × pengganda terhadap Air karena kelemahan dari Api akan meniadakan resistensi dari Air. Untuk tabel lengkap dan penjelasan lebih lanjut, lihat di bawah.
Objektif
Tujuannya di sini adalah untuk menampilkan daftar semua kombinasi jenis, diurutkan dalam urutan kemampuan defensif mereka, dan daftar jumlah mereka (resistensi + kekebalan), kelemahan, dan rasio di antara mereka. Secara khusus, urutan pengurutan adalah sebagai berikut: kombinasi jenis dengan rasio terbaik (resistensi + kekebalan) terhadap kelemahan terdaftar terlebih dahulu, dan jika ada seri, kombinasi jenis dengan resistensi paling banyak dan kekebalan akan memenangkan tiebreak. Anda dapat membuat daftar ini melalui cara apa pun (metode yang jelas adalah melakukan perhitungan keefektifan jenis terhadap setiap kombinasi jenis, tetapi Anda diizinkan untuk menyimpan hasil yang dihitung atau sebagian yang telah dihitung sebelumnya dalam program Anda jika hal itu membuatnya lebih pendek.)
Ketik tabel efektivitas
Untuk tabel yang dapat dibaca manusia, lihat basis data Pokemon. Catatan: kolom daftar ini adalah apa yang kami pertimbangkan. Tapi untuk berjaga-jaga, inilah tabel yang saya pikirkan dalam matriks efektivitas ramah komputer yang terkompresi. Saya telah mengalikan setiap nilai dengan 2 sehingga kami tidak harus berurusan dengan desimal sial:
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
Contoh
Jika masalah ini hanya meminta output untuk kombinasi tipe tunggal, maka output yang valid akan terlihat seperti ini:
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
Namun, program Anda juga perlu mencantumkan semua kombinasi tipe ganda dalam output, sehingga outputnya akan jauh lebih lama.
Semoga berhasil! Kode terpendek dalam byte menang.
sumber
Jawaban:
Python 2, 784 byte
Output:
sumber