3

0 から M までの整数は、特定のアルファベットから構成される n 文字コードにマップされます。注意が必要な部分は、コードが疑似ランダムで非連続的に見える必要があることです。そのようです:

0    BX07SU
1    TYN9RQ
2    QZ1697

私が見逃しているのは常識の部分だと思います。彼らはこのタイプの関数をどのように呼び出しf(i) = sますか? 特定の範囲内で衝突することなく、整数を疑似乱数文字列にマップしますか?

逆関数も素晴らしいでしょう。h(s) = i有効な文字列を整数に「デコード」したり、指定された文字列が無効であると判断したりできます。

4

3 に答える 3

1

関連する質問については、回答を投稿しました。あなたの場合、数値を別の数値にマップし(おそらく単純なハッシュ関数を使用して)、この数値を基数36の数値にエンコードする追加の数学関数が必要になります。

于 2012-07-29T11:35:02.810 に答える
0

一方向全単射ハッシュを取得する最も簡単な方法は、単純な古い CRC を使用することです。32 / 64 ビットでは可逆ですが、逆にするコードは見たことがありません。

于 2013-08-05T02:46:16.413 に答える