4桁以内の繰り返しのない一連の数字に基づいて疑似一意の数字(コード)を生成する

ダニエル

少なくとも1000個の連続した番号内で繰り返したくないややユニークなコードを生成しています

これが私の機能です。数値を取り、それを別の数値で乗算し$length=5、小数点の前の最後の桁を取ります

function createPseudoUniqueString($input,$length)
{
    return substr( intval($input*738510.93067),-$length) ;
}

すべての可能性をテストする以外に、結果の数値が繰り返されないことを検証する方法はありますか?

繰り返されていないことが知られている別の選択肢はありますか

サムガク

ランダムな5桁の数字を生成し、それらすべてを生成するまで繰り返されないことが保証されているカスタム線形合同法を設計できます。

LCGは、次の式を使用して乱数を生成します。

Xn + 1 =((Xn * a)+ c)mod m

5桁の数値を生成するには、mは100000(0〜99999の範囲)である必要があります。

繰り返しがないこと(「全期間」)を保証するには、次の基準を使用してaとcの値を選択する必要があります。

cとmは互いに素です

a-1はmのすべての素因数で割り切れる

mが4の倍数の場合、a-1は4の倍数です。

100000の素因数は2と5であり、4で割り切れるので、整数オーバーフローを避けるために大きすぎないように注意しながら、20 +1の倍数がaの適切な値として機能します。cの場合は、適度に大きな素数を選択します。

例:m = 100000、a = 4781、c = 62873

xの初期シード値を設定してから、を使用して前の値から各値を生成します。 $x = (($x*4781)+62873)%100000;

周期の大きい乱数ジェネレーターを使用して、生成された値を100000に変更することはできません。これは、周期の大きいRNGから生成された生の数値が繰り返されなくても、数値が保証されないためです。 mod100Kはしません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

データの重複に基づいて一意のIDを生成する

分類Dev

2つの基準条件に基づいて、一意のIDごとに異なる値の複数のCOUNTフィールドを返します

分類Dev

一意の値に基づいて列の値をフィルタリングしますが、同じ一意の値の同じ列の異なる値に対して繰り返されません

分類Dev

Kotlinで繰り返し要素のない4桁の数字を作成する

分類Dev

パターンに基づいて一意のIDを生成する

分類Dev

Python3-一意の数字がある場合とない場合のn桁のコードを再帰的に検索する

分類Dev

行が繰り返される2つの列、Rデータフレームに基づいて一意の値をカウントする

分類Dev

関連する列の値に基づいて一意のIDを生成する

分類Dev

総当たり攻撃なしでランダムで一意の4桁のコードを生成します

分類Dev

レコードを一意のIDに基づいて異なる値を持つ2つのレコードに分割します

分類Dev

特定の関連付けられた列に基づいて一意のレコードを取得する-RailsActiveRecordの関連付け

分類Dev

mysqlの1つの列に基づいて一意のレコードを取得する方法

分類Dev

Excelの数式-異なるテーブルからの複数の基準に基づいて範囲の一意のカウントを返します

分類Dev

フィールドに基づいて一意の行を印刷する

分類Dev

特定の列に基づいてCSVで一意のレコードを識別します

分類Dev

ACCESSの特定の基準に基づいて一意のレコードのみを表示するようにクエリを実行します

分類Dev

一意の6桁のコードを生成する方法

分類Dev

Javascriptは文字列に基づいて一意の番号を生成します

分類Dev

TABLOCKXを使用せずに、特定の基準に基づいて一意の連続したシーケンス番号を生成します

分類Dev

特定の基準に基づいて一意の行を返す

分類Dev

特定の基準に基づいて一意の行を返す

分類Dev

繰り返される観測の数を複製し、カウント値に基づいて観測を一意に識別する新しいIDを生成します

分類Dev

繰り返しなしでmongoosedbに一意の乱数を生成しますか?

分類Dev

最大double値に基づいてRDD [String、String、Double]で一意のレコードを検索します

分類Dev

MySqlの一意でない列に基づいて行を検索する

分類Dev

一意のIDに基づいて行を結合する

分類Dev

セミコロンに基づいてデータを分割し、一意の ID を取得する

分類Dev

繰り返されない数字を含む4桁の配列を生成します

分類Dev

一意の行に基づいてPythonデータフレームを連結する

Related 関連記事

  1. 1

    データの重複に基づいて一意のIDを生成する

  2. 2

    2つの基準条件に基づいて、一意のIDごとに異なる値の複数のCOUNTフィールドを返します

  3. 3

    一意の値に基づいて列の値をフィルタリングしますが、同じ一意の値の同じ列の異なる値に対して繰り返されません

  4. 4

    Kotlinで繰り返し要素のない4桁の数字を作成する

  5. 5

    パターンに基づいて一意のIDを生成する

  6. 6

    Python3-一意の数字がある場合とない場合のn桁のコードを再帰的に検索する

  7. 7

    行が繰り返される2つの列、Rデータフレームに基づいて一意の値をカウントする

  8. 8

    関連する列の値に基づいて一意のIDを生成する

  9. 9

    総当たり攻撃なしでランダムで一意の4桁のコードを生成します

  10. 10

    レコードを一意のIDに基づいて異なる値を持つ2つのレコードに分割します

  11. 11

    特定の関連付けられた列に基づいて一意のレコードを取得する-RailsActiveRecordの関連付け

  12. 12

    mysqlの1つの列に基づいて一意のレコードを取得する方法

  13. 13

    Excelの数式-異なるテーブルからの複数の基準に基づいて範囲の一意のカウントを返します

  14. 14

    フィールドに基づいて一意の行を印刷する

  15. 15

    特定の列に基づいてCSVで一意のレコードを識別します

  16. 16

    ACCESSの特定の基準に基づいて一意のレコードのみを表示するようにクエリを実行します

  17. 17

    一意の6桁のコードを生成する方法

  18. 18

    Javascriptは文字列に基づいて一意の番号を生成します

  19. 19

    TABLOCKXを使用せずに、特定の基準に基づいて一意の連続したシーケンス番号を生成します

  20. 20

    特定の基準に基づいて一意の行を返す

  21. 21

    特定の基準に基づいて一意の行を返す

  22. 22

    繰り返される観測の数を複製し、カウント値に基づいて観測を一意に識別する新しいIDを生成します

  23. 23

    繰り返しなしでmongoosedbに一意の乱数を生成しますか?

  24. 24

    最大double値に基づいてRDD [String、String、Double]で一意のレコードを検索します

  25. 25

    MySqlの一意でない列に基づいて行を検索する

  26. 26

    一意のIDに基づいて行を結合する

  27. 27

    セミコロンに基づいてデータを分割し、一意の ID を取得する

  28. 28

    繰り返されない数字を含む4桁の配列を生成します

  29. 29

    一意の行に基づいてPythonデータフレームを連結する

ホットタグ

アーカイブ