途心10マーガレットのミニマックス解・全部

続き。

前回は途心10マーガレットのミニマックス解を一つ見つけたが、ほかにどんな解があるかは不明だった。
今回、ミニマックス解をすべて見つけることができた。
以下ネタバレ。


ミニマックス解に入ることのできる剣師はかなり多いので、156のグループに分けて表記する。

  0: 18847237291421713811412661881261105233650    5/1/0/4/熱熱斬斬/
  1: 20617516814896433519773030734032446205590    5/0/0/4/衝熱熱衝速/
  2: 34836185620654658981275210994282863050450    5/0/0/4/衝速熱衝熱/
  3:  3100543923511571579919779908817665941568    5/0/0/4/速衝熱衝熱/
  4:  4495247347775760653097949568251037322726    5/0/0/4/速衝熱衝護/
  5: 50907711034588152393790375409615009476528    5/0/0/4/速熱衝衝熱/
  6: 21000005866166024775115374136833210980696    5/0/0/4/速熱熱衝斬/
  7: 29643561757592108838286881253621743041496    5/0/0/4/速熱熱衝衝/
  8: 67277176267760336251079110206244654986574    5/0/0/4/速護熱衝衝/
  9: 40887863476350242590175782186434322435998    5/0/0/3/速鏡熱衝衝速/,  5/0/0/4/速鏡熱衝衝/
 10: 40082001219271885769189318444536434407656    5/0/0/4/速鏡熱熱衝/
 11:  8056864770031013683525602363147932288276    5/3/0/3/毒斬斬/
 12: 16819410557494514512297381881670083321718    5/3/0/3/毒斬毒/,  5/3/0/3/毒毒斬/
 13: 25366289838242141331929863068305153380148    5/3/0/3/毒毒毒/
 14: 32171398652608551684072578644055333589402   10/2/0/3/毒毒毒/
 15: 17165550912004891935368297659814677265382   10/2/0/3/熱斬斬/
 16: 14235472140307049244216208868657085779634    5/1/0/3/速熱衝衝速/
 17:  2337451026223523270098177659251926210798    5/1/0/3/速護熱衝重/,  5/1/0/3/速熱護衝重/(*C4)
 18: 11208943590823920785200571284639490794250    5/1/0/3/速速熱衝衝/
 19:  7971937105762026871875590166452187600854    5/0/1/3/重熱衝護命/
 20: 29813909187363633567458929833151318376854   15/0/0/3/重熱護護/
 21: 11889691193097819358735525350859685556014    5/0/1/3/衝死護護速/
 22:  3816448541252271060749122323067869976778    5/0/0/3/衝鏡速熱絶命/,  5/0/0/3/衝鏡速命熱絶/,  5/0/0/3/命衝鏡速熱絶/
 23:  8430197864208504383370471889669930116724    5/0/1/3/死衝死護護/
 24: 59124923204226613719976040320541228743858    5/0/2/3/死護護斬/
 25: 28882187330479266747157225252061594742402   15/0/0/3/熱衝衝速/
 26:  1533638250994339260256202175866140424490   15/0/0/3/護熱重護/
 27: 14899245948881968780802100766487013533526   10/0/1/3/護熱命絶/, 10/0/1/3/護命熱絶/
 28: 46583191290769126447318396851920730795994   15/0/0/3/速衝熱衝/
 29: 25863731918828244803772066786241618777518   10/0/1/3/速衝熱衝/
 30:   957578658155015735930802317079597340006   10/0/0/3/速衝熱衝命/, 10/0/0/3/速衝命熱衝/, 10/0/0/3/命速衝熱衝/
 31:  8883739987859507359761895506388554751437    5/0/0/3/速衝護熱重絶/
 32:  4055506927033905448590610621157427465342   10/0/0/3/速絶護熱重/
 33: 67345725033765478900179046530870585240714   15/0/0/3/速熱衝衝/
 34: 60517450802795552279613992097689905311398   10/0/0/3/速熱衝衝熱/
 35: 23110090078251241225913498912877804892374   10/0/0/3/速熱絶盾衝/
 36:  5032576021568990825772579170232677802126   10/0/0/3/速熱速衝衝/
 37: 25708235426646157971644856809104616798793    5/0/0/3/速護熱衝重絶/,  5/0/0/3/速熱護衝重絶/(*C4)
 38: 41797632892493952666521150064541693396134   10/0/0/3/速護熱衝絶/
 39: 11948929770498368719792246835558963826114    5/0/0/3/速護護斬死死/
 40: 39938493362462286140699529065660191149034   10/0/0/3/速速衝熱衝/
 41: 36926892155014180264077065975057120695478   10/0/0/3/速速熱衝衝/
 42:  7749815683346779810574135208375801105982    5/0/0/3/速速熱絶衝衝/
 43:  9140985502451893367348617239584707380572    5/0/0/3/速鏡熱絶衝命/,  5/0/0/3/速鏡命熱絶衝/,  5/0/0/3/命速鏡熱絶衝/
 44:  5393978554591874161776863682846783936154    5/0/0/3/鏡重熱衝速熱/,  5/0/0/3/重鏡熱衝速熱/
 45: 10275888565676920736372331497654161093152   10/0/0/3/鏡魔速熱絶/
 46: 20669481140954727994482972102690046318884   10/0/1/3/鏡死護護/, 10/0/1/3/死鏡護護/
 47: 17818225724734381795757540471546803572814   15/0/0/3/鏡熱斬毒/, 15/0/0/3/鏡熱毒斬/
 48:   534956026943285228286399720243779839538   15/0/0/3/鏡熱重盾/
 49:  6303529940453129944537436294299786896864    5/0/0/3/鏡熱衝速衝熱/
 50:  9486985538340038190299975365176592030062   10/0/0/3/鏡熱命衝絶/, 10/0/0/3/命鏡熱衝絶/
 51: 13874501198129627986225591111266931950198   15/0/0/3/鏡熱絶盾/
 52:  1586570772424789464154343287484990044596   10/0/0/3/鏡速熱衝絶/
 53:  8190533288804556839210145423803520431450    5/0/0/3/鏡速熱衝絶命/,  5/0/0/3/鏡速命熱衝絶/,  5/0/0/3/命鏡速熱衝絶/
 54:  2469430453402539696853355602617250483900    5/0/0/3/鏡速熱絶衝命/,  5/0/0/3/鏡速命熱絶衝/,  5/0/0/3/命鏡速熱絶衝/
 55: 17751758419135532697857608875213995411290    5/0/0/3/鏡鏡速熱魔絶/
 56: 37374961742059435844128314611704444446206   10/0/0/2/鏡鏡鏡鏡魔速/, 10/0/0/2/鏡鏡鏡魔鏡速/(*C1), 10/0/0/3/鏡鏡鏡鏡魔/, 10/0/0/3/鏡鏡鏡魔鏡/(*C1)
 57:  5462571312841943424729270664236589173054   10/0/0/3/鏡熱衝速命/, 10/0/0/3/鏡熱命衝速/, 10/0/0/3/命鏡熱衝速/
 58:  5985894921231240923141256065892375979786    5/0/0/3/鏡衝熱絶速命/,  5/0/0/3/鏡衝熱命絶速/,  5/0/0/3/命鏡衝熱絶速/
 59: 25681356490609203650899672786568637607286    5/4/0/2/高毒毒/
 60: 17327380878381656023454165935710494291536    5/3/0/2/高高斬斬/
 61: 15001133133960713259685557515651675788002   10/3/0/2/高斬毒/, 10/3/0/2/高毒斬/
 62: 64285348104120743644350510767306953256948    5/3/0/2/高高毒毒/
 63: 32834329958784352573957514168796544346462   10/3/0/2/高毒毒/
 64: 41321789041807403022724049618900230356098   15/2/0/2/毒毒衝/
 65:  6852062442789057948203708278332004481482   15/2/0/2/毒毒盾/
 66:  6978612396860797167836661211467051948102   15/2/0/2/毒毒絶/
 67: 45246595727834281212863241502748053999654   15/2/0/2/毒毒魔/
 68:  7012495464945546776697370163182875556648   10/1/2/2/衝護毒/, 10/1/2/2/毒衝護/(*C0)
 69: 21000005866166024775115374136833210980696   15/1/0/2/毒毒魔鏡/
 70: 12319825512910617229275651540301489445844   15/1/0/2/毒毒鏡鏡/
 71:  9762654998200622858625504208816665661050   15/1/0/2/速熱重衝/
 72: 31161654882237381233981469200384664175902    5/1/2/2/鏡絶護命/,  5/1/2/2/絶鏡護命/
 73:   576321839436150334644645042458301458651   20/0/0/2/重熱絶速/
 74:  4000019334524033781433756404548497668442   20/0/0/2/重熱速衝/
 75:  5656160873285323330769537316465578716947   20/0/0/2/重速熱絶/
 76:  9685257185476992751817069790084928363048   10/0/2/2/衝熱速衝/
 77:  6239328707119092242832115189744335187018   20/0/0/2/衝速熱絶/
 78: 40975866201980246510538999345330887782862   20/0/0/2/絶熱絶速/
 79:  8623019845007398443775840216294861538516   15/0/0/2/魔鏡熱命絶/, 15/0/0/2/命魔鏡熱絶/
 80: 24779197218459794024387737102808318324494   15/0/1/2/死死護命/
 81:  4375364968145535494685321103054991231166   15/0/0/2/死護速斬死/
 82:  3073368161023126804981445664381237312080    5/0/3/2/死護鏡護/
 83:   588711163666020366837055779787729397257   10/0/1/2/回3護命鏡死/, 10/0/1/2/回3護命死鏡/, 10/0/1/2/回3死護命鏡/, 10/0/1/2/護命回3鏡死/, 10/0/1/2/護命回3死鏡/, 10/0/1/2/護命鏡回1死/, 10/0/1/2/護命鏡死回1/, 10/0/1/2/護命死回3鏡/, 10/0/1/2/護命死鏡回1/, 10/0/1/2/死回3護命鏡/, 10/0/1/2/死護命回3鏡/, 10/0/1/2/死護命鏡回1/
 84:  2652164516519484326573824721134522283336   10/0/1/2/回3護命死斬/, 10/0/1/2/回3死護命斬/, 10/0/1/2/護命回3死斬/(*C0), 10/0/1/2/護命死回3斬/(*C0), 10/0/1/2/死回3護命斬/, 10/0/1/2/死護命回3斬/(*C0)
 85: 43713573665730344755791507281471731265838   20/0/0/2/死速回4盾/(*C2), 20/0/0/2/死速盾回4/, 20/0/0/2/速死盾回4/
 86: 12075668653111669031833967512755078678122   15/0/0/2/鏡死速鏡盾/, 15/0/0/2/鏡速鏡死盾/(*C3), 15/0/0/2/鏡速死鏡盾/(*C3), 15/0/0/2/死鏡速鏡盾/
 87: 19516008301305897663084132188981770652896   20/0/0/2/回5鏡死盾/, 20/0/0/2/回5死鏡盾/, 20/0/0/2/鏡回5死盾/, 20/0/0/2/鏡死回5盾/, 20/0/0/2/死回5鏡盾/, 20/0/0/2/死鏡回5盾/
 88: 11174830167529287803385024586630298100510   20/0/0/2/熱重速衝/
 89:  1292570274838386428282351485644294391808   10/0/2/2/熱重速衝/
 90: 15231040579779801715336072133683024715030    5/0/3/2/熱衝絶速/
 91:  8914339325891631152396118710747397072516   20/0/0/2/熱絶速衝/
 92:  6079533803810784213369021765702645493044   15/0/0/2/熱速衝重絶/
 93: 12968801451609612089299540563843642610510   15/0/0/2/熱速衝重命/
 94:  3590989876431350470419425700895739779820   20/0/0/2/熱速衝絶/
 95:  1962714803559936238235278551814026479736   15/0/0/2/速絶熱命衝/
 96: 43413642321798116263728054201261409943564   20/0/0/2/速熱重絶/
 97:  6658520949396422339483618654127938808712   20/0/0/2/速熱衝重/
 98:  1896949614615254476346799324880276813792   20/0/0/2/速熱絶重/
 99:  8976273273560316945024473803347966122210   20/0/0/2/速熱絶絶/
100: 13677796527464344748934684978148239544944   20/0/0/2/速熱絶盾/
101:  1042192636870595998687793265058625312944   15/0/0/2/速熱絶命衝/, 15/0/0/2/速熱命絶衝/
102:  6661497432841796744803286483989830848058   15/0/0/2/速護絶回1死/, 15/0/0/2/速護絶死回1/
103: 11323241087367430140645362461786106266106    5/0/0/2/速速魔魔魔魔魔/
104: 18184275705173457275741851519186054966242   15/0/0/2/速盾熱重衝/
105: 11455786128788406501433637199318839139286   20/0/0/2/速鏡熱重/
106: 13640299808149224501899225637265969978424   15/0/0/2/速鏡熱重絶/
107:   271111506624667851451846041678937900890   15/0/0/2/速鏡熱鏡重/, 15/0/0/2/速鏡熱重鏡/
108:  9930081093564521549217065566194828341682   15/0/0/2/速鏡熱絶重/
109:  9727276688250277646087675068081744690932   15/0/0/2/速鏡熱絶鏡/
110: 16705889085111074813924336279548796639034   15/0/0/2/速鏡熱魔絶/
111: 20747570395806344049555465746083259411610   15/0/0/2/盾速熱重絶/
112: 11403344872982232813400803599337031755962   15/0/0/2/盾速熱絶重/
113: 16951317190771512483779544303372833395838   15/0/0/2/鏡重熱絶速/, 15/0/0/2/重鏡熱絶速/
114: 20529948038118837888867626163204368277938   10/0/2/2/鏡魔鏡護/
115:  3549961745397690590795397443401138338166   15/0/0/2/鏡魔鏡速鏡/
116: 16932119138104908823310810479809989165376    5/0/3/1/鏡魔鏡鏡速/,  5/0/3/2/鏡魔鏡鏡/
117:  6696439031280045124768482475056186757102   15/0/0/2/鏡死護速鏡/, 15/0/0/2/死鏡護速鏡/
118: 12426343213884224813660734547416828697388   15/0/0/2/鏡死護速回4/, 15/0/0/2/死鏡護速回4/
119: 23984789304901510230296089562724165460097   10/0/1/2/回3鏡護命死/, 10/0/1/2/回3鏡死護命/, 10/0/1/2/回3死鏡護命/, 10/0/1/2/鏡回3護命死/, 10/0/1/2/鏡回3死護命/, 10/0/1/2/鏡護命回1死/, 10/0/1/2/鏡護命死回1/, 10/0/1/2/鏡死回3護命/, 10/0/1/2/鏡死護命回1/, 10/0/1/2/死回3鏡護命/, 10/0/1/2/死鏡回3護命/, 10/0/1/2/死鏡護命回1/
120: 17013147206459218650739997084832531436414   15/0/0/2/鏡死速護鏡/, 15/0/0/2/死鏡速護鏡/
121:  7468263881379427458723219401389121346394    5/0/2/2/鏡鏡護死盾/,  5/0/2/2/鏡鏡死護盾/,  5/0/2/2/鏡死鏡護盾/,  5/0/2/2/死鏡鏡護盾/
122:  9685257185476992751817069790084928363048   15/0/0/2/鏡熱衝重速/
123: 27890464989326389841178856964064417434122   15/0/0/2/鏡熱絶絶速/
124:  2496813554766419715071788083279411153494   15/0/0/2/鏡熱命重命/, 15/0/0/2/鏡熱命命重/, 15/0/0/2/命鏡熱重命/, 15/0/0/2/命鏡熱命重/
125:  1734165961242183984051099650312695162528   15/0/0/2/鏡速衝熱絶/
126:   660459666856541065905938782775048738914   15/0/0/2/鏡速熱重盾/
127: 15771268870201755628890273815967675340326   15/0/0/2/鏡速熱重命/, 15/0/0/2/鏡速熱命重/
128:  9054588695272749673041947922055190899926   15/0/0/2/鏡速熱絶絶/
129:  7561286634041161724616447382394805685782   15/0/0/2/絶重熱命命/, 15/0/0/2/命絶重熱命/
130: 69743222991871209905832410703234888453586   15/0/0/2/速命熱衝絶/, 15/0/0/2/命速熱衝絶/
131: 92262641474616535340471313054621240683240   10/0/1/2/回3重死護命/, 10/0/1/2/重回3死護命/, 10/0/1/2/重死回3護命/, 10/0/1/2/重死護命回3/(*C0)
132: 18737062260994052240900382827337455817296   10/0/1/2/回3死死護命/, 10/0/1/2/死回3死護命/, 10/0/1/2/死死回3護命/, 10/0/1/2/死死護命回3/(*C0)
133: 46871038850427201581426566236750343003622    5/6/0/1/高毒/
134: 57083469949829413379017809667467043941190   10/5/0/1/高斬/
135: 79627896364338093374377138449628510655664   10/5/0/1/高毒/
136:  1308556850090673268547653936467142789642    5/5/0/1/高毒衝/
137: 23010751219972995714716823649637690776352    5/5/0/1/高毒毒/
138: 35997166417347627306740368427203040352324   15/3/0/1/毒絶命/, 15/3/0/1/毒命絶/
139: 31523909821905714681315836240467327237330   15/2/0/1/高毒絶命/, 15/2/0/1/高毒命絶/
140:  4573966883271824084580475913392086370552   10/2/2/1/毒絶命/, 10/2/2/1/毒命絶/
141: 20378253555542609703613106295894231341118   10/1/3/1/毒魔鏡/
142:  8600145293158637343920874839505365397020   15/1/0/1/命回4死絶命/, 15/1/0/1/命回4死命絶/, 15/1/0/1/命回4命死絶/, 15/1/0/1/命死回4絶命/, 15/1/0/1/命死回4命絶/, 15/1/0/1/命死命回4絶/, 15/1/0/1/命命回4死絶/, 15/1/0/1/命命死回4絶/
143:  5608079521202779742812459112607529900274   15/0/0/1/死速回1鏡鏡鏡/
144:  8379556961101698941625607005277321127486   10/0/3/1/速熱重絶/
145: 12801913421174729224167181175559812350766   10/0/3/1/速熱重命/, 10/0/3/1/速熱命重/
146:  2988718124612579812045298436418508856262-t 20/0/0/1/速死盾回4鏡/, 20/0/0/1/速盾回4鏡死/, 20/0/0/1/速盾回4死鏡/, 20/0/0/1/速盾死回4鏡/
147:  7321797204934216759631581359353820482736-t 20/0/0/1/回4速絶死盾/, 20/0/0/1/回4速絶盾死/, 20/0/0/1/速回4絶死盾/, 20/0/0/1/速回4絶盾死/
148: 22825969132503029122174864035070191750236   20/0/0/1/速回4盾死死/, 20/0/0/1/回4速盾死死/
149:  2422251292365872711200119543428951117870    5/0/3/1/鏡魔魔鏡速/,  5/0/3/2/鏡魔魔鏡/
150:  1624140899588358835695227737417313225572   15/0/0/1/命回3鏡鏡鏡死/, 15/0/0/1/命回3鏡鏡死鏡/, 15/0/0/1/命回3鏡死鏡鏡/, 15/0/0/1/命回3死鏡鏡鏡/, 15/0/0/1/命鏡回1鏡鏡死/, 15/0/0/1/命鏡回1鏡死鏡/, 15/0/0/1/命鏡回1死鏡鏡/, 15/0/0/1/命鏡死回1鏡鏡/, 15/0/0/1/命死回3鏡鏡鏡/, 15/0/0/1/命死鏡回1鏡鏡/
151: 13344429081466322562794531351077718355766   20/0/0/1/回4速斬死盾/, 20/0/0/1/回4速斬盾死/
152: 14153474106850919222298664146355789257742   20/0/0/1/回4速熱重絶/, 20/0/0/1/速回4熱重絶/, 20/0/0/1/速熱回4重絶/
153: 14127527459846725038433808129865986590438   20/0/0/1/回4速熱絶鏡/, 20/0/0/1/速回4熱絶鏡/, 20/0/0/1/速熱回4絶鏡/
154: 19017981407898024119538351886284651543076+t 20/0/0/1/回4速死盾鏡/, 20/0/0/1/回4速盾鏡死/, 20/0/0/1/回4速盾死鏡/, 20/0/0/1/速回4死盾鏡/, 20/0/0/1/速回4盾鏡死/, 20/0/0/1/速回4盾死鏡/, 20/0/0/1/速死回4盾鏡/
155:                                           t 20/0/0/1/速絶回4死盾/, 20/0/0/1/速絶回4盾死/, 20/0/0/1/速絶死回4盾/

各行について左から、グループ番号、グループの重み、グループに属する剣師。スペース節約のため重みは2809144853646263846735669256035674737034766倍して整数にしてある。

156のうち152グループの重みは固定である。つまり、あらゆる解において同じ重みをとる。残りの4グループの重みは可変で、パラメタtに依存する。tは0から2988718124612579812045298436418508856262までの任意の実数になれる。

基本的に、各グループに割り当てられた重みはグループ内の剣師に自由に配分して良い。ただし例外として、以下の五つの条件が課される。

[C0] W(10/1/2/2/毒衝護/)/2 + W(10/0/1/2/護命回3死斬/) + W(10/0/1/2/護命死回3斬/) + W(10/0/1/2/死護命回3斬/) + W(10/0/1/2/重死護命回3/) + W(10/0/1/2/死死護命回3/) ≦ 94654830620652950956136940791216846042895
[C1] W(10/0/0/2/鏡鏡鏡魔鏡速/) + W(10/0/0/3/鏡鏡鏡魔鏡/) ≦ 15557588961951144817959331575648772260736
[C2] W(20/0/0/2/速死盾回4/) ≦ 39135239935773618118528717127097574765408
[C3] W(15/0/0/2/鏡速鏡死盾/) + W(15/0/0/2/鏡速死鏡盾/) ≦ 4451783773785682225188520716058511055628
[C4] W(5/1/0/3/速熱護衝重/) + W(5/0/0/3/速熱護衝重絶/) ≦ 963151757154484125403851031409731732840

ここで、W(x)は剣師xの重み。(正確には、xと"単純に同値"な剣師の重みの総計。"単純に同値"の定義は後述)

パラメタtを調整することで、グループ146とグループ155のどちらか一方の重みを0にすることができる。これ以外のグループの重みは0にならないので、解を構成する剣師の最小人数は155。

同値剣師

ミニマックス解が一つ与えられたとき、ある剣師を同値な剣師で置き換えたり、重みの一部を同値な剣師に移したりしてもやはりミニマックス解になる。このため、ミニマックス解の全体について考えるときは、互いに同値な剣師をひとまとめにして扱うことができる。

上の表には互いに同値な剣師が一部しか入っていない。例えば5/3/0/2/高高毒毒/は表にあるが、5/3/0/2/毒高高毒/はない。具体的には、以下の操作を繰り返すことで互いに変換できるとき"単純に同値"であるということにして、"単純に同値"な剣師な剣師のグループ一つにつき一体だけを表に載せている。

  • 0ターン目か1ターン目に使用可能なリミテッド剣と、それより遅延の大きい剣が隣接しているなら、それらの順序を入れ替える。例: 10/0/1/3/護熱絶命/を10/0/1/3/護熱命絶/に。なお、ここでいう「使用可能」とは実際にその剣を振るAPがあることも要求する。例えば疑似遅延の命の剣は該当しない。
  • 「疑似遅延を考慮すれば起動ターンが変わらない」範囲内で、回復剣の遅延を変える。例: 10/0/1/2/護命鏡回1死/を10/0/1/2/護命鏡回3死/に。
  • 攻撃力も加熱剣も持たない剣師なら、「疑似遅延を考慮すれば起動ターンが変わらない」範囲内で、斬撃剣、衝撃剣、絶対剣、重撃剣を互いに種別変更する。

"単純に同値"であるならば本当に同値であることは本来証明が必要だが、面倒なのでやらない。

計算方法

概略だけ。まず大まかな必要条件を計算してから全探索という流れ。

  1. あるミニマックス解に対して勝率が1/2を下回る剣師は決してミニマックス解に含まれないので、前回得たミニマックス解に対して勝率1/2である剣師のリスト("単純に同値"な剣師を除去して289体)から出発。
  2. このリスト内で総当たりを行い、勝敗が同じものをグループ化。158のグループができた。最初の解の剣師それぞれに対応する155グループに加えて、以下の3グループがあった。
    155: 20/0/0/1/速絶回4死盾/, 20/0/0/1/速絶回4盾死/, 20/0/0/1/速絶死回4盾/
    156: 20/0/0/1/回4速盾死死/
    157: 20/0/0/1/速回4斬死盾/, 20/0/0/1/速回4斬盾死/, 20/0/0/1/速回4衝死盾/, 20/0/0/1/速回4衝盾死/
  3. これらのグループに対する可能な重みの割り当ての必要条件を計算するために、各グループの剣師xについて「xの勝率が1/2を超えない」条件を考える。158変数の線型連立不等式ができる。
  4. これを解いたところ、幸運なことにほとんどのグループの重みは一定値しかとれないことが分かった。重みが可変なグループは<146>、<147>、<148>、<154>、<155>、<156>の六つだったが、<146'>=<146>∪<154>、<147'>=<147>∪<155>、<148'>=<148>∪<156>とおくとこの三つの重みはそれぞれ一定になった。また、<157>の重みは常に0だったので以降無視する。結果として154グループ(すべて重み一定)に分割できることが分かった。ここまで必要条件。
  5. 剣師に対する具体的な重み配分がミニマックス解になるための必要十分条件を得るために、「剣師に対する重み配分のやりかたによっては勝率1/2を超える可能性がある」剣師を列挙する。具体的には、グループ内の剣師のうち一人にでも勝てばそのグループに勝ったとみなして、154グループに対する重みつき勝率を計算する。全探索を行ったところ、この重み付き勝率が1/2を超える剣師が15体見つかった。
     5/5/0/2/斬毒
    10/0/0/3/速衝熱衝熱
    15/0/0/3/鏡魔鏡鏡
    15/0/0/3/鏡鏡魔鏡
    15/0/0/3/鏡鏡鏡鏡
    10/0/2/2/衝熱速衝
    5/5/0/2/毒斬
    20/0/0/2/速衝熱重
    10/0/2/2/速衝熱衝
    20/0/0/2/速衝熱衝
    15/0/0/2/鏡魔鏡鏡速
    15/0/0/2/鏡熱衝重速
    15/0/0/2/鏡速衝熱重
    15/0/0/2/鏡鏡魔鏡速
    15/0/0/2/鏡鏡鏡鏡速
    探索に使ったソースコード
  6. 145グループの各剣師に対する重み配分がミニマックス解であることは、「この15体の勝率がどれも0.5以下」と同値。これは再び連立不等式として表現できて、解くと最終的な解が得られる。