問題タブ [integer-partition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
342 参照

python - Python の制限付き整数パーティション

1, 2, 5, 10, 20, 50, 100, 200 だけを使って 500 を作る方法が何通りあるか知りたい.次の方法でそれを実行できるようにしたい:

あるセット T からの数のみを使用して、与えられた数 n の整数パーティションの数は、すべての (1-x t ) -1の積の x n項の係数から取得できます。ここで、t は T 内にあります。 .

これを行うには、(1-x t ) -1のテイラー展開が (1+x t +x 2t +...)に等しいことに注意してください。これまでに書いたコードは次のとおりです。

私の問題は、これが与える答えが正しいと確信していないことです。私はそれを、出力が互いに一致する他の 2 つの貪欲なアルゴリズムと比較しましたが、私のものではありません。私がどこで間違ったのか誰にもわかりますか?

0 投票する
0 に答える
132 参照

prolog - 定款文法への変換方法

数値の分割を出力する定句文法を書こうとしています。たとえば、次のように?- w(3,L,[])出力する必要があります。

私のコードは次のようになります。

パーティション関数は正常に動作しているようですが、「w」を正しくインスタンス化する方法がわかりません。これが本当に基本的なものである場合は申し訳ありません。私はプロローグが初めてです。

0 投票する
2 に答える
257 参照

python - Python と数論: q(n) (n を個別の部分に分割する数) の生成関数を作成するにはどうすればよいですか?

https://en.wikipedia.org/wiki/Partition_%28number_theory%29#Restricted_pa​​rtitionsから、整数 p(n) の分割数は

p(n)

Python では次のように記述できます。

私の質問は次のとおりです。これを変更して、個別の部分を含むパーティションの数であるq(n)を返すにはどうすればよいですか?

すなわち;

p(3)=23=2+1 3=1+1+1 (1,1,1)区別されないためです。

しかし、異なる要素q(3)=1のみが含まれているため です。3=2+1

の生成関数はq(n)

ここに画像の説明を入力

n から無限大までの積を返す Python の良い積関数が見つかりません。

0 投票する
1 に答える
88 参照

arrays - プロパティのセットからビットシーケンスを再構築する

ones、数値x、およびその他のプロパティの指定されたセットから Bitsequence を再構築したいと思います。ビットシーケンスでは、最初のビットの値は 1、2 番目のビットの値は 2、3 番目のビットの値は 3 などです。

たとえば、次のプロパティがあります。

x=15 (セットされたビットのすべての値の合計)

ビット シーケンスの長さ: 8

1すべてのサブシーケンスの数: 2

1サブシーケンスの数: 1

  1. サブシーケンスの長さ: 2

したがって、ソリューションは11000000です。

複数のソリューションが存在する可能性があります。すべてのソリューションに興味があります

指定されたプロパティでソリューションを効果的に見つけるにはどうすればよいですか?

0 投票する
1 に答える
205 参照

r - 合計が 10 になる 6 つの数字のすべての組み合わせのリストを見つける

したがって、この質問の同様のバージョンが以前に尋ねられたのを見たことがあります ( R を使用して合計が 100 になるすべての組み合わせを取得する) が、具体的に何を実行する必要があるかを理解する方法を見つけるのに苦労しています。R で、合計 10 になる 6 つの数字のさまざまな組み合わせのリストを作成しようとしています。ただし、0 と同じ # の繰り返しを行に含めたいと考えています。したがって、次のようになります。

10 0 0 0 0 0 9 1 0 0 0 0 8 2 0 0 0 0 私は以下を実行しようとしました:

ただし、これを行うと、0 を含むバリエーションが含まれていないようです。実行中のさまざまな部分に include.zero=TRUE 関数を入力しようとしましたが、これまでのところうまくいきませんでした。助言がありますか?

0 投票する
1 に答える
813 参照

python - Python で整数 n の k 部分への制限された弱整数合成 (または分割) を生成する

(以前の投稿への応答がなかったため、再投稿)
数値「n」の弱い整数構成(パーティション)を「k」部分に生成するPythonコードを作成しようとしていますが、MINIMUMとMAXIMUMを使用しています各パーティションの値の制約 (以下の例を参照)。また、パーティションは辞書順に生成する必要があります。関連する投稿をいくつか見つけましたが、実装できませんでした。どんな助けでも大歓迎です。

例:
k=3 部分の n=5 の可能な整数分割:
[5,0,0]、[4,1,0]、[4,0,1]、[3,2,0]、[3、 1,1]、[3,0,2]、...、[0,0,5]
パーティション内の各整数が MINIMUM 値 0 と MAXIMUM 値 3 を持つという制約を課した後、次のようになります。
[ 3,2,0]、[3,1,1]、[3,0,2]、...などのみ。

関連記事:
整数パーティショニングのためのエレガントな Python コード Python
で辞書式シリーズを効率的に生成する