簡単な方法は次のとおりです。
1.Generate a random integer.
2.Shift it 8 times to have 24 meaningful bits, store this integer value.
3.Use first 8 bits for R, second group of 8 bits for G,
and the remaining 8 bits for B value.
新しい乱数ごとに、それを8回シフトし、以前に保存した他のすべての整数値を比較します。それらのいずれも新しい乱数と一致しない場合は、それを新しい色に使用します(ステップ3)。
知覚の閾値は人によって異なるため、人間の目による識別は興味深いトピックです。整数を 14 回シフトするには、R の最初の 6 ビットを取得し (再び 8 ビットを取得するために 2 つの 0 を埋めます)、G の 2 番目の 6 ビットを取得し、B の最後の 6 ビットを取得します。よかった、5,4 減らして...
各チャネルに有効な 4 ビットを使用した単純な実行: 私のランダムな整数は次のとおりです。
0101-1111-0000-1111-0000-1100-1101-0000
それを左に 20 回シフトします (乗算またはモジュロも使用できます)。
0000-0000-0000-0000-0000-0101-1111-0000
この値を保存します。
次に、R の最初の 4 ビット、G の 2 番目の 4 ビット、B の最後の 4 ビットを取得します。
R: 0101
G: 1111
B: 0000
それらをパディングして、それぞれを 8 ビットにします。
R: 0101-0000
G: 1111-0000
B: 0000-0000
それらを色コンポーネントに使用します。
シフト後の新しい乱数ごとに、これまでに保存された整数値と比較します。異なる場合は、保管して色に使用してください。