入力での店舗カウンター: - 5C5それらのすべてが非5桁の順列を繰り返しているカウント順列 - 配列
1, 2, 3, 4, 5
2, 1, 3, 4, 5
3, 2, 5, 4, 1
5, 4, 3, 1, 2
.....
: は、私のようないくつかの配列を、持っています。行は繰り返すことができますが、行内の数字は一意です。
目的: 入力データに含まれる各タイプ(置換)の配列数を数えます。
私の考え: 5C5には120個のユニークな行しかないと言われています。だから私はint[120]
配列にカウンタを格納することができます。入力を読みながらそれらをインクリメントします。
私の質問: この配列を配列インデックスに変換(ハッシュ)するアルゴリズムはありますか?
推奨言語はCで、ポインタと手動メモリ管理があります。
FILE *f;
int counters[120] = {0};
char seq[20];
parse_line(f, seq); #scans and parses string into array
counters[hash(seq)]++;
PS:「 - リサイクルUVA 157を」私は解くことによって、この問題のために触発された 完璧で、私のような何かをしようとしています。後で私は解決策を見て、私は仕事を誤解していると理解しましたが、質問は答えられませんでした。
5P5 = 120,5C5 = 1 – BLUEPIXY
ありがとうございました。私はCとAしか研究しなかったので、その順列がPとして書かれていることを知らなかった。 – manitou