目的
入力数値を一意にマッピングする決定論的関数を生成する指定された範囲内の数値を重複なく出力します。
メソッド
アフィン暗号に基づく剰余演算を利用します:
パラメータ:
uint64 の例
変換関数:
func transform(p uint64) uint64 { return m * p + s // implicitly mod'd 2^64 by the type's size }
int64 の例
符号付き数値の場合、一意のマッピングを維持するために uint64 と int64 の間で入力と出力を変換します:
func signedTransform(p int64) int64 { return int64(transform(uint64(p))) }
保証
以上が1:1 マッピングで一意の決定論的な数値を生成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。