2016-11-22 6 views
0

は、適切なタイトルの厳しい時間的な思考を持っていたが、私はちょうど自動車には、次の簡単な数学の問題を計算することができます何かコーディングしようとしています:プログラミングで「平均値」を表すことは可能ですか?

に、Bの平均値を、cは25.ですbの平均値、cは23です。 'a'の値は何ですか?

わたしたちの人間にとっては、bとcを知る必要なしに、 'a'の値が29であると簡単に計算できます。しかし、これがプログラミングで可能なのかどうかはわかりません。ここでは、 'a、b、c'と 'b、c'の平均値をとり、自動的に 'a'を出力する関数を記述します。

+0

これを行うことができます。一歩前に戻って、問題を解決するためにコードを書いて解決しようとしていることについてちょっと考えてください。あなたが解決しようとしている問題は何ですか?いくつかのコレクションの平均値があり、異なる平均値を得るためにコレクションに何を追加するかを知りたい場合、追加する数値はコレクション内の値の数に完全に依存していることも考慮する必要があります。あなたの例では、b、d、dの平均が23の場合、aを29とすると25ではなく平均24.5が得られます。 – danielunderwood

+0

まあ、平均を合計で簡単に置き換えることができます。したがって、「b + c = 46」および「a + b + c = 75」。次に、差(a + b + c) - (b + c)=(75 - 46)を取る。簡略化すると、 'a = 75 -46 = 29'となります。コードの場合、ソリューションは本当に解決する必要のある問題の範囲に依存します。ある時点では、本質的に行列を使って方程式を表現し、その解を見つけるための操作を行います。 – Phil1970

答えて

3

はい、可能です。その理由は、ここで線形方程式のシステムとして説明されている問題の種類をモデル化できるからです。たとえば、あなたは、Bの平均と言うとき、cは25で、その後、あなたはその

/3 + B/3 + C/3 = 25

を言っています

B、Cの平均値が23であるという制約に追加すると、方程式より一般

B/2

+ C/2 = 23

を与える形の任意の制約「平均の変数は、X 、...、 Nのように書くことができる「MであるX X

X/N + X/N + ... +または多くのソリューションが存在することを決定 - - あなたが書き出さこれらの制約をすべて、特定の変数の値を解くを持っていたら、X N/N = M.

線型方程式のシステムを解くことに帰着しますs。これを行うには数多くのテクニックがありますが、バックプロパゲーションによるガウス消去は特にこれを行う一般的な方法です(ただし、これをMATLABまたは線形代数パッケージに渡して作業します)

解決策があるかどうかを判断したり、変数の値を推測したりすることができるという方程式の集合が与えられているという保証はありませんが、そのような場合は、制約の形状問題を正確な解決策に従わせる。

1

申し訳ありません。タイトルごとに直接質問に答えるには、プログラミングの平均値を表すことができます。 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が提案したことを試してみることがあります。

関連する問題