0

特定の範囲内のすべての数値を同じ範囲内の別の数値に変換し、後でその数値を元に戻すソリューションを探しています。

より具体的には、私が数字を持っているとしましょう1..100

すべての数値を同じ範囲内の別の数値に変換する最も簡単な方法は、を使用することです。b = 99 -a;後で元の数値を。で取得しa = 99 - b;ます。

私の問題は、ランダム性をシミュレートしたいということです。

これをPHPで実装したいのですが、コーディング言語は関係ありません。

なぜ?

あなたは多分なぜ言うのですか?良い質問 :)

-sに基づいて読みやすいショートコード文字列を生成していますidが、IDが1つずつインクリメントされるため、連続するショートコードが類似しすぎています。後で、IDを取得するために、ショートコードを「デコード」する必要があります。

私のアルゴリズムが現在行っていることは次のとおりです。

0000001 -> ababac、、、0000002 -> ababadなど0000003 -> ababaf

後で

ababac -> 0000001、、、ababad -> 0000002などababaf -> 0000003

したがって、実際にショートコードを生成する前に、可能な限り数値を「ランダム化」したいと思います。

4

2 に答える 2

1

オプション1:なぜあなたはただ変換のデータベースを持っていないのですか?つまり、各レコードには「実際の」IDと「ランダムなmd5」文字列などがあります

オプション2:レインボーテーブルを使用します。0から10,000などの範囲のMD5ルックアップテーブルでさえも使用できます。次に、ハッシュテーブルルックアップを実行します

于 2012-12-15T14:50:27.407 に答える
0

最後に、数学フォーラムで、モジュール演算子に基づく解決策を見つけました。解決策はここにあります:

https://math.stackexchange.com/questions/259891/function-to-convert-each-number-in-amn-to-another-number-in-the-same-range

于 2012-12-16T12:38:20.023 に答える