2016.03.16 和算可逆判定最少整数列
おはようございます、花立です。下村さん、素晴らしいレポートありがとうございます。
意外と出来たので前回の話の続きです。前回の記事をお読みになっていない方のために簡単に説明しますが、私にはどうしても合計値が被らない整数10個の集団のうち、最大値が最小のものが必要なんです。ということでこちらを用意しました。
↑こんな感じでコードと注釈を書きました。
要は(1,2,3)というグループに試しに4を加えて、それぞれの数字同士を足した合計値が被らなければ採用します(1+4=2+3=5なので、4は不採用)。
もし駄目なら次は5、次は6、というように採用候補を動かしていき、判定をクリアした数字をどんどんグループに加えていきます(足し合わせる数字の数も2個(1+2,1+3、...)、3個(1+2+3,1+2+4,...)、というようにそれぞれで重複判定を行います)。
そしてグループ内の数字が10個になるまで判定しています。最大の難関は合計値の計算式を抽象化するところでしたね。そして結果が下です。
↑とにかく、こういう結果になりました。
しかし、今回は初期値を1,2,3で始めましたが、もしかしたらその辺を弄るともっと小さい配列が見つかるかもしれません。つまり、初期値も同じような感じでループさせるとよさそうです。また進展があったらブログに載せます。
終わり