整数分割に対するエレガントな Python ソリューション
整数の分割とは、正の整数を一意の正の整数の合計に分割することを指します。 Python のエレガントなソリューションの 1 つは、ジェネレーター関数を利用して、指定された整数 n の可能なすべての分割を効率的に生成します。
Python の ActiveState から提供されるソリューションは、再帰を採用しています。
<code class="python">def partitions(n, I=1): yield (n,) for i in range(I, n//2 + 1): for p in partitions(n-i, i): yield (i,) + p</code>
このジェネレーターは、すべてのパーティションが最大部分の降順に並べられるため、パーティションが小さいほど高速になります。時間比較テストで実証されているように、そのランタイムは他のアプローチよりも優れています。
このソリューションは、accel_asc のようなより最適化されたアルゴリズムと比較して、より多くのメモリを必要とします。それにもかかわらず、そのシンプルさと読みやすさにより、整数分割の問題を解決するための貴重なツールとなっています。
以上がPython ジェネレーターはどのようにして整数分割問題をエレガントに解決できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。