1

保存されるデータが固定数の一意の値で構成されていることを知っている場合、使用するのに最適なデータ構造は何ですか?順序が重要です。特に、52枚のカードのデッキの状態を最適に保存しようとしています。各カードは1から52までの数字で表されます。

4

5 に答える 5

1

配列/ベクトルはこれをうまく行います。

可能な整数値の間にギャップなしで整数で識別できるオブジェクト(カード)の固定数があります。これにより、メモリの連続ブロックを占有し、値に基づく直接アクセス(インデックス作成)を可能にするデータ構造を使用でき、アクセスは整数値の自然な順序を使用します-これは配列/ベクトルに完全に適合します

于 2012-04-14T15:30:23.963 に答える
1

あなたの唯一の関心事が順列を表現することである場合(自然な順序で)、階乗数法を選択することができます。これは、順列の考えられる最小の表現です。

ところで:これはあまり実用的な解決策ではありません。52!約8E67です;-)

于 2012-04-14T15:38:14.913 に答える
0

セットの一意性を確保したい場合は、JavaでLinkedHashSet
を使用できます。 他の言語/ライブラリにも、同様の機能があると思います。

于 2012-04-14T15:32:40.890 に答える
0

順序が重要で、要素の数が固定されている場合は、次のようなカードの配列を使用するだけです。

Card[] cards = new Card[52];

0から51までのインデックスを作成してください。ほとんどのプログラミング言語では、1から52までのインデックスを作成するよりも簡単です。

于 2012-04-14T15:35:49.023 に答える
0

必要なのは、単一の226ビット整数と、デッキを可能な順序にマッピングするための番号付けスキームだけです。

カードのデッキにメッセージを保存する

上記のリンクの詳細な説明

キーデッキ(単純なPythonコード)

于 2014-01-14T17:26:22.590 に答える