ハッシュ関数を使用して、オブジェクトに記憶に残る性格を与える

StackOverflow https://stackoverflow.com/questions/1802094

  •  05-07-2019
  •  | 
  •  

質問

(注:プロジェクトはPythonです。)

画面に表示して操作したいオブジェクトがたくさんあるシミュレーションを実行しています。各オブジェクトは場所から場所へと突然移動するため、各オブジェクトを識別する方法が必要です。どのオブジェクトがどこで移動したかを追跡できるようにしたいのです。

私が考えていたのは、すべてのオブジェクトに対して「パーソナリティ」を生成することです。いくつかの色と英語の名前。これをGUIのオブジェクト表現として配置します。ハッシュ関数を使用してこれらの色と名前を作成すると考えましたが、ハッシュ関数を使用したことはありません。

やりたいことを行うにはどうすればよいですか

役に立ちましたか?

解決

uuidを使用します(pythonのモジュールuuid> = 2.5)。

バージョン4のこのuuidは、定義によりすべてのフィールド(1つを除く)でランダムに定義されています

>>> uuid.uuid4()
UUID('9d477dc7-a986-4e3d-aa4f-6e57f690be78')

フィールドを適切に分解して、色または名前を作成できます(名前のバケットを特定のフィールドにマッピングすることにより)。もちろん、ハッシュを制限しています(実際のIDは常にuuidです)が、視覚的な目的のためにはそれで十分です。 たとえば、最初の3つのオクテットを使用して色#9d477dを生成し、残りのオクテット c7 を使用して256のセットから1つの名前を選択できます。

色がwithすぎる場合は、代わりにHSVで作業し、彩度と値を特定のレベルに固定できます。繰り返しますが、これによりハッシュがさらに制限されます(ただし、色空間は既にかなり制限されています)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top