申し訳ありません。タイトルごとに直接質問に答えるには、プログラミングの平均値を表すことができます。 1つの可能な方法は、集合の平均値がvalue
(例えば、25)である間に、集合の集合をkey
(例えば、「a、b、c」)として格納する地図データ構造のリストを作成することである。
キーを抽出してカンマで区切ってリストに格納し、平均値にリストのサイズを掛けて合計(たとえば25x3と23x2)を取得します。これにより、意味情報が失われることはありません。
私がこの質問をした文脈については、問題のより適切な記述は「変数の異なる組み合わせの平均値のセットを与えられれば、各変数の値を見つけることは可能ですか?これに対する答えは開いています。私はそれを理解することはできませんが、以下のようにロジックフローを記述する試みがあります:
すべての可能な組み合わせでリストを一致させて(パラグラフ2から)別のリストのすべての要素が含まれています。そのような場合は、リスト(abc-bcなど)と値(75-46など)を減算します。もし減算すると、コレクション内に変数が1つしかない場合、この変数の値が見つかりました。
abcd-bc = adのように1つ以上の変数が残っている場合は、その値をマップデータ構造として保存し、可能な限り完全な繰返しの減算カウントが0になるまでこのプロセスを繰り返します(例えば、acはbcを減算することはできません)。残念ながらではなく、が終了します。
リストを組み合わせて(例えば、ac + bd = abcd)、解決策を引き出すことができます。これが当てはまる場合、あなたは試行をやめるべき時期を知らず、組み合わせのリストは指数関数的になります。たぶん、強力な関連する数学的理論を持つ人は、特定の回数の反復で、さらなる追加は役に立たず、したがって停止すべきであることを証明することができます。ああ、負の値も有益である可能性があり、したがって、私が以前に言ったことは、 'ac'が 'bd'を引くことができないということと矛盾します(a、c、-b、-dを得る)。これによりさらに多くの組み合わせが計算されます。
コンピューティング・サイエンスの基盤が強化されている人は、templatypypedefが提案したことを試してみることがあります。
これを行うことができます。一歩前に戻って、問題を解決するためにコードを書いて解決しようとしていることについてちょっと考えてください。あなたが解決しようとしている問題は何ですか?いくつかのコレクションの平均値があり、異なる平均値を得るためにコレクションに何を追加するかを知りたい場合、追加する数値はコレクション内の値の数に完全に依存していることも考慮する必要があります。あなたの例では、b、d、dの平均が23の場合、aを29とすると25ではなく平均24.5が得られます。 – danielunderwood
まあ、平均を合計で簡単に置き換えることができます。したがって、「b + c = 46」および「a + b + c = 75」。次に、差(a + b + c) - (b + c)=(75 - 46)を取る。簡略化すると、 'a = 75 -46 = 29'となります。コードの場合、ソリューションは本当に解決する必要のある問題の範囲に依存します。ある時点では、本質的に行列を使って方程式を表現し、その解を見つけるための操作を行います。 – Phil1970