2011-07-05 11 views
-3

は、私は次のことを行いメソッドを実装する方法を把握しようとしている値"分割は、アレイとカウント

配列は、メソッドを通じてパラメータとして渡されます。配列には、連続する番号のリストが含まれます。配列内の数字は、単語がテキストファイル内で(#を無視する)位置に対応するので、4番目の単語は3(n-1)の値に対応します。

この方法では、#の前の単語が配列内で発生した回数をカウントし、#の間の合計エントリ数で除算します。これは、これが行われるたびに平均をとることになります。

だから、これを明確にする例:

は、テキストを含むファイルを持っていると言う:

こんにちは私の名前#は、対応する配列は次のようになります#

ものです:

0 、0,1,1,2,2,2,2,3,4,4(順番に各文字の番号)

最初のハッシュは2と3の間で起こります。したがって、2は表すth #の前に出現する単語。だから私たちは(2の総数)/ 0、1と2の合計数を計算します。これは4/9になります。

次に、2つのハッシュの間で同じ値を計算します。 「何か」は4に対応しているので、(4の合計数)/ 3と4の合計数があります。 これは2/3になります。

私たちは、その後、私は、これは明らかであると思い2/3と4/9

の平均を取ると、あなたが任意の明確化が必要な場合は私に知らせてください。

+0

ご自分のコードを表示してください。 – Marcelo

+0

あなたはすでに試したことはありますか? –

+0

あなたのためにこれを解決することによって、それは宿題の目的を破る... –

答えて

1

私はsplit()の空白文字の文字列です。各セルのインデックスは対応するnumを表し、セルの内容(単語)の長さは '0の数または1の数です。'です。
これは問題の最初の部分を解決するはずです。

次に、#がどこにあるのか、そのオフセットはありますが、オフセットは文字ではなく、文字で表現する必要があります。だから私は以前に作成された配列を繰り返し、私が保存した単語が#であるかどうかをチェックします。それがマーカー変数(これは以前の位置/最後に表示されたインデックスを保持する必要があります#)を更新したい場合は、あなたが望む除算(4/8、2/3 w/e)を計算します。これは、前のセルの内容の長さをマーカーから現在のインデックス-1までの長さの合計で割ったものです。

私はそれについてだと思います。論理。実装が難しいことではありません。限界を確認することを忘れないでください。

+0

こんにちは、単語の長さは、0または1の数だけの任意の乱数です – Labra

+0

hmm?あなたは "名前"は4文字、したがって4つの2であると言ったので、除算は4/total_num_of_numsです – c00kiemon5ter

+0

うん!あなたはそれを言っていないが、これはまだ動作します。長さの代わりに、対応するインデックスのnumの数を取得するだけで済みます。同じこと。 – c00kiemon5ter

関連する問題