1

私が取っているコースでは、最近プログラミング言語のSchemeを学ばなければなりませんでした。私はすべての基本を理解していますが、それは私たちが行ってきたことのほとんどすべてです. 私は、Scheme が構成する別の方法で考えるのを学ぶのに苦労しています。

私は課題を与えられましたが、実際にどのように開始すればよいかさえわかりません。私はここに数時間座って、始める方法さえ見つけようとしましたが、ちょっと困惑しています. 記録として、私はこの問題を解決するためのコードを求めているわけではありませんが、正しい軌道に乗せるためのいくつかの考えを求めています。

とにかく、これが課題の要点です...

有権者の投票を表す 10 個の数字のリストが与えられます。数字は -1、0、または 1 です。次に、名前と、その候補者の投票に対応する 10 個の数字を含む、候補者のリストのリストが与えられます。これらの数値も -1 0 と 1 です。

たとえば。

'(0 0 0 -1 -1 1 0 1 0 -1)
'(Adams 0 1 -1 0 1 1 0 -1 -1 0 0)

数字のリスト (Voter) と候補者のリストのリストを受け取る best_candidates という関数を実装するよう求められます。次に、有権者の投票を各候補者のリストと比較し、最も一般的な投票を持つ名前のリストを返す必要があります。

これまでのところ、私はいくつかのことを考え出しました。値を確認して有権者の名前を保持する方法について混乱していますか? 私はまだ C/Java の考え方に固執していて、これが非常に困難になっていると思います。

始めるのに役立つ提案はありますか?

4

1 に答える 1

1

これは、違いが最小限の (つまり「最も一般的な」)アイテムを探す場合の標準的な検索問題だと思います。

つまり、アイテムx_0x_1、...、x_nのリストが与えられた場合、対応する不一致数d_0d_1、...、d_nのセットを計算する関数を書きたいと思います。

これらのd_i不一致数を計算できたら、どれが最小かを調べます。これらは最大一致に対応します。

それができれば、対応するx_iが収集したいリスト項目になります。

上記の説明は、プログラミング言語に依存するものではありません。別の言語に慣れている場合は、まずその言語でコーディングしてください。余分な作業をやりがいのあるものにするために、十分な自信と問題の理解を得る必要があります。少なくとも、Scheme 実装に対してテストして同意を得ることを確認するために使用できる別の実装を用意します。

于 2012-09-27T23:55:37.237 に答える