• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:10000通りのシリアル番号を生成したい)

10000通りのシリアル番号を生成する方法

このQ&Aのポイント
  • 10000通りのユニークなシリアル番号を生成させるプログラムを作りたい。
  • シリアル番号にはマスク処理をかけて他の番号にHitしないようにする。
  • シリアル番号から元の連番の数値も出力する方法を知りたい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

可逆なENCODE/DECODEが出来れば良いのであるから、 ロジックがバレなきゃ何でも良いんじゃないですか? 例えば 数字列(abcd)という4桁の数字に対し、 a + 1 = A b + 3 = B c + 5 = C d + 7 = D を、それぞれ行い、10以上なら、一の位のみ残す。 そして、数字列(ABCD)にチェックデジット(x)を求め付与する。 出来がった数字列(xABCD)に、もう一度チェックデジット(y)を付与する。 xABCDy となる。 シリアルコードが正当なモノかどうかは、デジット計算で行える。 もとの連番値が知りたいときは、デジット桁を捨てて、 10 + A - 1 = a 10 + B - 3 = b 10 + C - 5 = c 10 + D - 7 = d それぞれのabcdが、10以上なら、一の位だけを使って 数字列(abcd)とする。 プログラミングは難しくないけれど、ロジックさえバレなきゃ、 想像が付きにくいシリアルコードが作れるハズ。 例) 0000 -> 913570 0001 -> 713588 ポイントは、ロジックが推定しにくくなるように、ということだけです。

その他の回答 (1)

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

> その、マスクの部分の具体的な処理がよくわからないのです。 単純に乱数ではだめですか? (重複がでたら再度乱数をかければ) > シリアル番号から、元の連番の数値も出したいと考えていますが 番号とシリアルを対応させたリストを別に作っておくことになるでしょう。

関連するQ&A