{"id":1293,"date":"2021-09-30T00:47:24","date_gmt":"2021-09-29T15:47:24","guid":{"rendered":"https:\/\/www.earce.biz\/?page_id=1293"},"modified":"2021-09-30T00:49:05","modified_gmt":"2021-09-29T15:49:05","slug":"tool-unique-code-generator","status":"publish","type":"page","link":"https:\/\/www.earce.biz\/?page_id=1293","title":{"rendered":"[Tool] Unique Code Generator"},"content":{"rendered":"\n<p class=\"has-text-align-center wp-block-paragraph\">&lt;&lt; This service is not communicating with the server. &gt;&gt;<\/p>\n\n\n\n<style>\n  @import url('https:\/\/fonts.googleapis.com\/css?family=Source+Code+Pro');\n\n  #textResult1 {\n    font-family: 'Source Code Pro', monospace;\n    font-size : 0.85em;\n  }\n<\/style>\n\n\n\n<script type=\"text\/javascript\">\nconst NUM_SOURCE = \"23456789\";\nconst CHAR_SOURCE = \"ABCDEFGHJKLMNPQRSTUVWXY\";\n\njQuery().ready(function($){\n$(function(){\n\/\/ --------------------------------------------------\nsessionStorage.clear();\n\n$(\"#actionButton1\").click( function(e){\n  var result = generateUnique(3, 1000, 3, 2411);\n  var buf = result.toString();\n  buf = buf.replace(\/\\,\/g, \"\\n\");\n  $('#textResult1').val(buf);\n});\n\n$(\"#actionButton2\").click( function(e){\n  var result = generateUnique(4, 3000, 4, 6133);\n  var buf = result.toString();\n  buf = buf.replace(\/\\,\/g, \"\\n\");\n  $('#textResult1').val(buf);\n});\n\n$(\"#actionButton3\").click( function(e){\n  var result = generateUnique(5, 5000, 4, 87277);\n  var buf = result.toString();\n  buf = buf.replace(\/\\,\/g, \"\\n\");\n  $('#textResult1').val(buf);\n});\n\n$(\"#actionButton4\").click( function(e){\n  var result = generateUnique(6, 10000, 4, 920947);\n  var buf = result.toString();\n  buf = buf.replace(\/\\,\/g, \"\\n\");\n  $('#textResult1').val(buf);\n});\n\n$(\"#actionButton5\").click( function(e){\n  var result = generateUnique(7, 30000, 5, 2147483647);\n  var buf = result.toString();\n  buf = buf.replace(\/\\,\/g, \"\\n\");\n  $('#textResult1').val(buf);\n});\n\n$(\"#actionButton6\").click( function(e){\n  var result = generateUnique(8, 50000, 6, 2147483647);\n  var buf = result.toString();\n  buf = buf.replace(\/\\,\/g, \"\\n\");\n  $('#textResult1').val(buf);\n});\n\nfunction generateUnique(len, quantity, minUniq, baseNumber) {\n\n  if (minUniq>len) {\n    minUniq = len;\n  }\n\n  var maxsize = 1;\n  var srclist = [];\n  var numsrclist = [];\n  for (var idx1 = 0;idx1 < len;idx1++)\n  {\n    var srcbase = NUM_SOURCE;\n    var mod = idx1 % 3;\n    if (mod <= 1) {\n      srcbase = CHAR_SOURCE;\n    }\n    maxsize *= srcbase.length;\n    numsrclist.push(srcbase.length);\n    srclist.push(srcbase);\n  }\n  \n  var numlist = Object.assign([], numsrclist);\n  var numbase = 1;\n  for (var idx2 = numsrclist.length - 1; idx2 >= 0; idx2--)\n  {\n    numbase *= numsrclist[idx2];\n    numlist[idx2] = numbase;\n  }\n\n  console.log(\"length =\", len, \"quantity =\", quantity, \"min unique =\", minUniq, \"baseNumber =\", baseNumber, \"numbase =\", numbase , \"numbase\/baseNumber\", numbase\/baseNumber);\n  var seqno = Math.floor(Math.random() * maxsize);\n\n  var lines = [];\n  var nonconformityCount = 0;\n  while (lines.length<quantity)\n  {\n    var calcbase = seqno;\n    var linechars = \"\";\n    for (var idx3 = 0; idx3 < numlist.length;idx3++)\n    {\n      var charbaseidx = calcbase;\n      if ((idx3 + 1) < numlist.length) {\n        charbaseidx = Math.floor(calcbase \/ numlist[idx3 + 1]);\n        calcbase = calcbase % numlist[idx3 + 1];\n      }\n      charidx = charbaseidx % numsrclist[idx3];\n\n      var gchar = srclist[idx3].substr(charidx, 1);\n      linechars += gchar;\n    }\n\n    var chars = linechars.split(\"\");\n    var keys = {};\n    for (var idx in chars) {\n      keys[chars[idx]] = true;\n    }\n    var ucharCnt = 0;\n    for (var idx in keys) {\n      ucharCnt++;\n    }\n    \n    if (ucharCnt>=minUniq) {\n      lines.push(linechars);\n    } else {\n      console.log(\"Nonconformity\", linechars, ucharCnt , \"<\", minUniq);\n      nonconformityCount++;\n    }\n\n    seqno += baseNumber;\n    seqno = seqno % numbase;\n  }\n  console.log(\"Nonconformity Rate =\", nonconformityCount , \"\/\", quantity, \"=\", nonconformityCount \/ quantity * 100, \"%\", \"all patterns = \", numbase);\n  return lines;\n}\n\n\n\/\/ --------------------------------------------------\n});\n});\n<\/script>\n\n\n\n<div class=\"wp-block-button aligncenter custom-wide-button\">\n<button id=\"actionButton1\" class=\"wp-block-button__link has-background has-vivid-cyan-blue-background-color\" style=\"width:200px;\">3 Chars x 1000<\/button>\n<button id=\"actionButton2\" class=\"wp-block-button__link has-background has-vivid-cyan-blue-background-color\" style=\"width:200px;\">4 Chars x 3000<\/button>\n<button id=\"actionButton3\" class=\"wp-block-button__link has-background has-vivid-cyan-blue-background-color\" style=\"width:200px;\">5 Chars x 5000<\/button>\n<button id=\"actionButton4\" class=\"wp-block-button__link has-background has-vivid-cyan-blue-background-color\" style=\"width:200px;\">6 Chars x 10000<\/button>\n<button id=\"actionButton5\" class=\"wp-block-button__link has-background has-vivid-cyan-blue-background-color\" style=\"width:200px;\">7 Chars x 30000<\/button>\n<button id=\"actionButton6\" class=\"wp-block-button__link has-background has-vivid-cyan-blue-background-color\" style=\"width:200px;\">8 Chars x 50000<\/button>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<textarea id=\"textResult1\" rows=\"8\" cols=\"100\" readonly=\"readonly\"><\/textarea>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&lt;&lt; This service is not communicating with the server. &gt;&gt; 3 Chars x 1000 4 Chars x 3000 5 Chars x 5 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.earce.biz\/?page_id=1293\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;[Tool] Unique Code Generator&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":35,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1293","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/pages\/1293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.earce.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1293"}],"version-history":[{"count":136,"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/pages\/1293\/revisions"}],"predecessor-version":[{"id":1429,"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/pages\/1293\/revisions\/1429"}],"up":[{"embeddable":true,"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/pages\/35"}],"wp:attachment":[{"href":"https:\/\/www.earce.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}