PHPを介して次の問題を解決しようとしています。目的は、整数シードに基づいて、定義済みの文字範囲を含む一意の 6 文字の文字列を生成することです。2 番目の要件は、文字列がランダムに表示される必要があることです (つまり、コード 1 が 100000 の場合、コード 2 が 100001 で、コード 3 が 100002 であることは受け入れられません)。
文字の範囲は次のとおりです。
- B、I、O、S、Z を除く大文字の AZ
- 0 ~ 9 を除く: 0、1、2、5、8
私が間違っていなければ、合計で26文字になります。私の最初のアイデアは、番号 7962624 で始まる base 10 から base 24 へのエンコードです。7962624 + シードを実行し、base24 でその番号をエンコードします。
これにより、0〜Nの文字が得られます。結果の文字列を次のように置き換えると、最初の基準が満たされます。
B=P, I=Q, 0=R, 1=T, 2=U, 5=V, 8=W
したがって、この時点で、私のコードは次のようになります。
1=TRRRR, 2=TRRRT, 3=TRRRU
だからあなたの達人への私の質問は次のとおりです:どうすれば一貫して動作し (与えられた整数の戻り文字列は常に同じです)、上記の 2 つの要件を満たすメソッドを作成できますか? 私はこれに丸 2 日を費やしましたが、7 億のコードをデータベースにダンプしてランダムに取得するまでには至りませんでした。
スティーブン