対戦用ポケ育ててるじゃん? 努力値振りメンドいじゃん? でもパワー系アイテムあるからまあまあラクじゃん? 252振りたかったら群れバトル10回と2匹倒せばいいじゃん? でも二匹同時に育てる場合は別じゃん? せっかくだから同時に努力値振りしたいけど、パワー系アイテムを何回ずつ持たせればいいのかわかんないじゃん? まあちょっと考えればわかるけど、それが252じゃなくて132だったり、二匹じゃなくて三匹になったりするじゃん?

そこで、その回数を求める関数を書いてみた。

ev = 252
num = 2
def foo(ev, num):
    for power in range(100):
        a = (25 * power) + (power * 5 * (num - 1))
        if a > ev:
            power -= 1
            rest = ev - ((25 * power) + (power * 5 * (num - 1)))
            print ('Give power-item each of them ' + str(power) + 
                ' times in flock battle.\nAnd then kick ' +
                 str(rest) + ' pokemons\' ass.')
            break
foo(ev, num)

ev に振りたい努力値を、 num に振る匹数を代入して実行すると「パワー系アイテムをそれぞれに持たせて何回ずつ群れバトルし」、「持たせずに何匹倒す」と満遍なく指定した努力値が振られるかが出る。

この式を思いつくのに、三匹くらいに努力値を振れるくらいの時間を費やしてしまったが、そんなもんだろう。

関数まわりは Sunaba で散々やったのでこの通り書けるんだけど、 class が絶命的にわからんのでまだまだだ。