सबसे टिकाऊ नि प्रकार


9

पृष्ठभूमि

इस सवाल के समान है इस एक । मैंने नीचे दी गई सभी जानकारी प्रदान की है। यदि आप दूसरी चुनौती से परिचित हैं तो ध्यान दें कि हम एक ही हमले की प्रभावशीलता को देखने के बजाय सभी बचावों की रैंकिंग कर रहे हैं। यह महत्वपूर्ण है क्योंकि इसका मतलब है कि टेबल एक-दूसरे के व्युत्क्रम हैं और इस चुनौती का लक्ष्य उपयोगकर्ता इनपुट के बिना होना है।

पोकेमॉन में 18 प्रकार हैं:

Normal    Fighting  Flying  Poison  Ground  Rock
Bug       Ghost     Steel   Fire    Water   Grass
Electric  Psychic   Ice     Dragon  Dark    Fairy

पोकेमॉन में एक या दो अद्वितीय प्रकार होते हैं जो उन्हें परिभाषित करते हैं (एक "प्रकार संयोजन")। उदाहरण के लिए, एक बुलबासौर का संयोजन संयोजन ग्रास / पॉइज़न (इसके दो प्रकार, ग्रास और ज़हर हैं) और एक चार्मेंडर में संयोजन संयोजन अग्नि (केवल एक प्रकार का) है। प्रकारों का क्रम मायने नहीं रखता (अर्थात ग्रास / जहर जहर / ग्रास के समान है)।

इन सभी प्रकार की ताकत और कमजोरियां हैं:

  • एक प्रकार दूसरे प्रकार से कमजोर हो सकता है। आग पानी के खिलाफ कमजोर है। इसके परिणामस्वरूप आग में पानी के विरुद्ध 2 × गुणक होता है।
  • एक प्रकार दूसरे प्रकार के लिए प्रतिरोधी हो सकता है। पानी जल प्रतिरोधी है। इसके परिणामस्वरूप पानी में पानी के मुकाबले 0.5 × गुणक होता है।
  • एक प्रकार दूसरे प्रकार के लिए प्रतिरक्षा हो सकता है। उड़ान ग्राउंड के लिए प्रतिरक्षा है। यह ग्राउंड के खिलाफ 0 × गुणक वाले फ्लाइंग में परिणाम देता है।

कुछ भी एक मानक 1 × गुणक प्राप्त करता है। सामान्य के मुकाबले सामान्य में परिणाम होगा 1 × गुणक इसका एक उदाहरण है। इन खूबियों और कमजोरियों को कंपाउंड या नकारा जा सकता है। उदाहरण के लिए, आग पानी के लिए कमजोर है, लेकिन आग / पानी के दोहरे प्रकार में पानी के खिलाफ 1 × गुणक होगा क्योंकि आग से कमजोरी पानी से प्रतिरोध को नकार देगी। एक पूर्ण तालिका और आगे की व्याख्या के लिए, नीचे देखें।

उद्देश्य

यहाँ लक्ष्य सभी प्रकार के संयोजनों की एक सूची का उत्पादन करना है, जो उनकी रक्षात्मक क्षमता के क्रम में क्रमबद्ध है, और उनकी संख्या (प्रतिरोध + प्रतिरक्षा), कमजोरियों, और उन दोनों के बीच अनुपात को सूचीबद्ध करता है। विशेष रूप से, क्रमबद्ध क्रम निम्नानुसार है: कमजोरियों के सर्वोत्तम अनुपात (प्रतिरोध + प्रतिरक्षा) के साथ संयोजन को पहले सूचीबद्ध किया जाता है, और यदि कोई टाई है, तो सबसे अधिक प्रतिरोध और प्रतिरक्षा के साथ प्रकार संयोजन टाईब्रेक जीतेंगे। आप किसी भी माध्यम से इस सूची का निर्माण कर सकते हैं (एक स्पष्ट विधि प्रत्येक प्रकार के संयोजन के खिलाफ एक प्रकार की प्रभावशीलता की गणना करना है, लेकिन आपको अपने कार्यक्रम में पूर्वगामी या आंशिक रूप से पूर्व-उत्पादित उत्पादन को संग्रहीत करने की अनुमति दी जाती है यदि ऐसा करने से यह छोटा हो जाएगा।)

प्रभावशीलता तालिका टाइप करें

एक मानव पठनीय तालिका के लिए, नि डेटाबेस देखें नोट: इस सूची के कॉलम वही हैं जो हम विचार कर रहे हैं। लेकिन सिर्फ मामले में, यहां वह तालिका है जो मैं एक संगणित कंप्यूटर-अनुकूल मैट्रिक्स ऑफ इफ़ेक्ट में सोच रहा हूं। मैंने हर मूल्य को 2 से गुणा किया है इसलिए हमें pesky दशमलव से निपटने की आवश्यकता नहीं है:

           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

हालांकि, आपके प्रोग्राम को आउटपुट में सभी दोहरे प्रकार के संयोजनों को सूचीबद्ध करने की आवश्यकता होगी, इसलिए इसका आउटपुट काफी लंबा होगा।

शुभकामनाएँ! बाइट्स में सबसे छोटा कोड जीतता है।



3
और PPCG में आपका स्वागत है! :)
मार्टिन एंडर

1
मुझे लगता है कि यह स्पष्ट समस्या है कि प्रश्न को हल करने के लिए आवश्यक डेटा की तुलना में उत्तर छोटा है, और इस तरह एक जीत समाधान केवल आउटपुट को हार्डकोड करेगा। समस्या को हल करने के लिए, आपको संभवतः रन टाइम पर इनपुट के रूप में टाइप इफ़ेक्ट मैट्रिक्स को लेने के लिए चुनौती को बदलना होगा।

@ ais523 मेरा मानना ​​है कि मैट्रिक्स को संपीड़ित करना चुनौती का मूल माना जाता है, और सिद्धांत रूप में मुझे इसके साथ कुछ भी गलत नहीं दिखता है (हालांकि इस मामले में, दुर्भाग्य से, यह सटीक तालिका पहले एक चुनौती का विषय रही है)।
मार्टिन एंडर

2
@MartinEnder यह संबंधित से अधिक है ... यदि आप परिचय पर जाते हैं तो यह 100% कॉपी किया गया है और फिर इसे कॉपी नहीं किया गया है। यह ठीक उसी संरचना का अनुसरण करता है, शुरुआती प्रकार एक ही क्रम में होते हैं, समान स्वरूपित होते हैं। यह सिर्फ स्पष्ट रूप से यह उल्लेख किए बिना चोरी करने और इसे छिपाने की कोशिश कर रहा है।
orlp

जवाबों:


2

पायथन 2, 784 बाइट्स

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

आउटपुट:

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

बहुत बढ़िया। बिल्कुल वही जो मैं चाहता था। धन्यवाद दोस्त!
डेविन व्हाइट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.