カメヲラボ

主にプログラミングとお勉強全般について書いてます

Parliament(3)

  • 超絶テクニック(下準備)

インプットの値をNとすると、N=5,6,7,8の場合、
5=2+3
6=2+4
7=3+4
8=3+5
のように、解は2数で表すことになる。2数で表すので、これらのインプットを第2群と呼ぶことにしよう。こうすると、第3群はN=9,10,11,12,13の5つ。インプットの値が第何群に属するかを決定するには、Nから負にならないように、-2, -3, -4...と引いていけば求めることが出来る。例えば第2群では、以下のようなイメージになる。

第2群に属する場合、Nから-2,-3としたところで負にならない最小数になる。従って最後に引く数は3であり、ここから一つ引いた値が群数である。
第3群なら、

最後に4を引いて終わりなので、ここから1を引いた値が群数と一致する。

これらの図で、群数を表す部分をm、Nから2,3...順に減算し、負にならない最小の数をtとしておいて、準備は終わりだ。