ホームページ >バックエンド開発 >Python チュートリアル >Python でエレガントで効率的な整数パーティショニングを実現するにはどうすればよいでしょうか?
整数分割のためのエレガントな Python コード
整数をより小さな正の整数に分割することは、さまざまなソリューションの開発のきっかけとなった計算上の課題です。コーディング スタイルと効率を向上させるために、私たちはこの問題を解決する洗練されたアプローチを模索しています。
レスポンダによって提案されたそのような解決策の 1 つは、partitions() 関数です。
<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>
この関数I 以上のサイズの部分から開始しながら、整数 n のすべてのパーティションを生成します。 Nolen の関数と比較すると、partitions() はかなり高速で、生成される結果は小さくなります。
ただし、どちらの関数も accel_asc よりもはるかに遅いです。 () 関数。加速された昇順アルゴリズムを使用します。 accel_asc() は、反復ループを使用して整数を分割し、速度とメモリ効率の両方を実現します。
詳細については、ActiveState の Generator For Integer Partitions (Python Recipe) ページで、整数分割のための追加の Python ソリューションを調べることができます。 .
私たちの議論では、速度、メモリ効率、コーディング スタイルの優雅さに対するさまざまなニーズに応える、Python の整数分割問題を解決するために利用できるさまざまなアプローチに焦点を当てています。
以上がPython でエレガントで効率的な整数パーティショニングを実現するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。