n個をs個のグループに分割する。ただし、割り切れなくなる時は大体等しくする

分割についてのメモ。こういうのをなんていうか知らない。 n個をs個に分割すると、 q = n // s 個に分割できる(小数点以下切り捨て) r = n % s 個余る。(0 <= r < s になる) ここで余りrはq個ずつのグループs個のそれぞれに分配する。 n = s*q + rであり、0 <= r < s であるので、r個をそれぞれのグループに1つずつ分配すればいい。 Python3で言えばこんな感じのグループの数ごとのリストができる
alist = [q+1 if i < r else q for i in range(s)]
例えば、274を12で分割すると次のようになる [23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 22, 22] total: 274

コメント

タイトルとURLをコピーしました