分割数のリストを求めるスクリプトを作ってみました。partition
関数自体はわずか10行足らずなのですが、昔から再帰に苦手意識があって苦労しました。
partiton.py
実行
整数6を4つの和に分割しています。
% python partition.py 6 4 [1, 1, 1, 3] [1, 1, 2, 2] [1, 1, 3, 1] [1, 2, 1, 2] [1, 2, 2, 1] [1, 3, 1, 1] [2, 1, 1, 2] [2, 1, 2, 1] [2, 2, 1, 1] [3, 1, 1, 1]
参考
retを空のリストで初期化して、そこにリストを突っ込む→リストのリストを返しそう→じゃあlはリストのリストになるのでlの各要素に[i]をつけとかないとね。kが1以下の場合もリストのリストを返さないとね。みたいな感じで、戻り値の型を意識すると良いと思います!
— Ozy Ⓜ️ (@ozy4dm) 2023年1月13日