মার্কিন লাইসেন্স প্লেট তৈরি করুন


16

ইনপুট হিসাবে নিম্নলিখিত একটি দেওয়া:

AK,AR,AS,AZ,CA,CT,DC,FL,GA,IL,IN,IA,KS,KY,LA,MD,MI,MN,MS,NV,NH,NJ,NM,NY,NC,ND,MP,OH,OK,OR,PA,PR,RI,SC,TN,TX,UT,VT,VA,WA,WI

(উদ্ধৃতি সহ)

"AK","AR","AS","AZ","CA","CT","DC","FL","GA","IL","IN","IA","KS","KY","LA","MD","MI","MN","MS","NV","NH","NJ","NM","NY","NC","ND","MP","OH","OK","OR","PA","PR","RI","SC","TN","TX","UT","VT","VA","WA","WI"

ইনপুটটির সাথে মিলে ফর্ম্যাটটির একটি (অভিন্ন) এলোমেলো লাইসেন্স প্লেট উত্পাদন এবং আউটপুট দেয়। যদি একাধিক (কমা দ্বারা পৃথক) ফর্ম্যাট থাকে তবে একটি (অভিন্ন) র্যান্ডম ফর্ম্যাটটি ব্যবহার করুন:

AK, IA, MS, MP, VT: AAA 000
AS: 0000
AZ, GA, WA: AAA0000
AR, KS, KY, LA, ND, OR: 000 AAA
CA: 0AAA000
CT: AA-00000
DC: AA-0000
FL: AAA A00
IL: AA 00000
IN: 000A,000AA,000AAA,AAA000
MD: 0AA0000
MI: AAA 0000,0AA A00,AAA 000
MN: 000-AAA
NV: 00A-000
NH: 000 0000
NJ: A00-AAA
NM: 000-AAA,AAA-000
NY, NC, PA, TX, VA, WI: AAA-0000
OH: AAA 0000
OK: 000AAA
PR: AAA-000
RI: 000-000
SC: AAA 000,000 0AA
TN: A00-00A
UT: A00 0AA

কোথায় Aমানে বড় হাতের বর্ণমালা বিয়োগ মধ্যে একটি র্যান্ডম অক্ষর IOQএবং0 অর্থ একটি এলোমেলো একক সংখ্যা ( 0থেকে 9)।

থেকে সমস্ত তথ্য উইকিপিডিয়া । এইগুলি (রাষ্ট্রসমূহ) সমস্তই আমি বুঝতে পেরেছিলাম এবং এর বিধিবিধানের নিয়ম নেই।

এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর!


2
@ ম্যাজিক অ্যাক্টোপাস উর্ন হেই, এ সম্পর্কে, একই ফর্ম্যাটযুক্ত বিভিন্ন রাজ্য একে অপরের উপর ট্যাব রাখে না, তাই তারা উভয়ই একই সংখ্যা জারি করতে পারে, এবং পুলিশকে প্লেটটি কী অবস্থিত তা দেখতে হবে
স্টিফেন

1
প্রতিটি রাজ্যের জন্য আকারের নম্বর স্থানটি পরিবর্তিত হয়। আমরা কি 1) সমস্ত রাজ্যের জন্য সম্মিলিত সংখ্যার স্থান বিবেচনা করি এবং এটি থেকে অভিন্নভাবে বাছাই করি (যা আরও বেশি ভারী ওজনের সাথে আরও বেশি সংখ্যক স্পেস যুক্ত হবে)? অথবা আমরা 2) প্রথমে 50 টি রাজ্যের মধ্যে একটি করে বাছাই করে এবং তারপর সেই রাজ্যের নম্বর স্থান থেকে অভিন্নভাবে একটি সংখ্যা বাছাই করি (যা সমস্ত রাজ্যের সমানভাবে ওজন করবে)?
ডিজিটাল ট্রমা

1
ওহ দুঃখিত আমি এটি সঠিকভাবে পড়িনি। রাজ্যটি ইনপুট।
ডিজিটাল ট্রমা

1
আচ্ছা রাজ্যের একাধিক ফরম্যাটের আছে, যেমন জন্য অনুরূপ প্রশ্ন IN। আমরা কি অভিন্নভাবে একটি বিন্যাস বাছাই করি (000A, 000AA, 000AAA বা AAA000 এর মধ্যে একটি), তারপরে সেই বিন্যাস থেকে একটি সংখ্যা বাছাই করুন (প্রতিটি বিন্যাস সমানভাবে ওজনিত)। বা আমরা কি সেই রাষ্ট্রের জন্য সমস্ত ফর্ম্যাটের জন্য নম্বর স্থান বিবেচনা করি এবং সেই পুরো সংখ্যা স্থান থেকে (বৃহত্তর ফর্ম্যাটগুলি আরও বেশি ওজনিত) চয়ন করি?
ডিজিটাল ট্রমা

2
আমি মনে করি আপনি নীচে তাদের প্লেটের ফর্ম্যাটগুলি বর্ণনা করেও আপনি ইনপুটগুলির তালিকা থেকে "এআর" এবং "ওআর" রেখে গেছেন।
গাছ নয়

উত্তর:


3

পার্ল 6 , 492 350 বাইট

{$_=('AKIAMSMPVT:7 3AS:4AZGAWA:74ARKSKYLANDOR:3 7CA:173CT:6-5DC:6-4FL:7 52IL:6 5IN:35,36,37,73MD:164MI:7 4,16 52,7 3MN:3-7NV:25-3NH:3 4NJ:52-7NM:3-7,7-3NYNCPATXVAWI:7-4OH:7 4OK:37PR:7-3RI:3-3SC:7 3,3 16TN:52-25UT:52 16'~~/$^a
[..]*?\:(<[\d]+[-\ ]>+)+%\,/)[0].pick;s:g/<[567]>/{[~]
(('A'..'Z')∖<I O Q>).pick xx($/-4)}/;S:g/\d/{[~] (^10).pick xx$/}/}

এটি অনলাইন চেষ্টা করুন!

আমি আমার প্রথম প্রয়াসের পরেও অনেক এগিয়ে ছিলাম, কোডটি পেরে উঠার জন্য আমি খুব একটা প্রচেষ্টা করি নি। এখন আমার আছে.

লাইসেন্স প্লেটের নিদর্শনগুলির আমার এনকোডিং-এ, 1-4 নম্বরগুলি অনেকগুলি এলোমেলো অঙ্কের একটি রান নির্দেশ করে এবং 5-7 সংখ্যাটি সংখ্যার চেয়ে দৈর্ঘ্যের কম দৈর্ঘ্যের এলোমেলো অনুমতিযুক্ত অক্ষরগুলির ইঙ্গিত দেয়।


আপনি ফাঁকা স্থান পরিচালনা করবেন?
জাকারি

আহ, না, আমি খুব উত্সাহের আগে বাকী লেখা থেকে ফাঁকা স্থান সরিয়েছি। আমি বারোটি অতিরিক্ত বাইটের জন্য স্পেস রেখে দিয়েছি।
শান

6

পাইথন 3, 861 821 819 714 678 674 670 662 661 658 596 591 561 555 551 536 বাইট।

-8 বাইটস @ ডেসক্রটিবল লাইমনকে ( b=a+... এবং d=B...), @ 15 ফিলিপ নার্দি বাতিস্তা (অকেজো ল্যাম্বদা এবং ভেরিয়েবল) কে ধন্যবাদ

এবং আড্ডায় যাঁরা এই গল্ফকে সহায়তা করেছেন তাদের প্রত্যেককে ধন্যবাদ!

from random import*
C=choice
Z='000'
A='AAA'
B=A+'-0'+Z
a=A+' '+Z
b=A+'0'+Z
c=a[::-1]
d=B[1:]
print(C(''.join(C(['ABCDEFGHJKLMNPRSTUVWXYZ','0123456789',i]['A0'.find(i)])for i in([a]*5+[Z+'0',b,b,b]+[c]*6+['0'+A+Z,d,d+'0',A+' A00','AA 00'+Z,Z+'A,000AA,000AAA,'+A+Z,'0AA0'+Z,a+'0,0AA A00,'+a,Z+'-'+A,'00A-'+A,Z+' 0'+Z,'A00-'+A,Z+'-AAA,AAA-'+Z]+[B]*6+[a+'0',Z+A,B[:-1],Z+'-'+Z,a+','+c,'A00-00A','A00 0AA'])[[*zip('AIMMVAAGWAKKLNOCDCFIIMMMNNNNNNPTVWOOPRSTU','KASPTSZAARSYADRACTLLNDINVHJMYCAXAIHKRICNT')].index(tuple(input()))]).split(',')))

এটি অনলাইনে চেষ্টা করুন

কোনও গল্ফিং পরামর্শ স্বাগত (এবং চেয়েছিল) are এবং, দয়া করে, যদি আপনি কোনও ত্রুটি চিহ্নিত করেন তবে কেবল মন্তব্যের মাধ্যমে আমাকে জানান!


পাইথন তালিকার কোনও আইটেমটি পূর্ববর্তী আইটেমটিতে সেট করার কোনও উপায় আছে বা তালিকার অন্য কোনও আইটেম? লাইক, সেট IAকরুন list[0]বা এর মতো কিছু (আমি পাই পাই পাই পাই না)
স্টিফেন

না এটি একটি অভিধান, এবং আমি অভিধানে কোনও নাম বরাদ্দ করি নি, সুতরাং এটির উল্লেখ করার কোনও উপায় নেই।
জাকারি

1
অ্যাসাইনমেন্ট হতে পারে না b= a+"0"? d = বি [1:] হতে পারে?
ধ্বংসাত্মক লেবু

ba+'0'আমি লাইসেন্স প্লেটগুলি স্ক্রু হিসাবে হিসাবে হতে পারে না ।
জাকারি

1
ল্যাম্বদা সরিয়ে এবং তালিকায় পুনরাবৃত্তি যোগ করে 561 ডাউন 541 বাইট
ফিলিপ নারদী বাটিস্তা

6

জাভাস্ক্রিপ্ট (ES6), 374 368 বাইট

s=>(P=n=>parseInt(n,36),R=Math.random,g=F=>F?(' -'+(R()*10|0)+'ABCDEFGHJKLMNPRSTUVWXYZ'[R()*23|0])[F&3]+g(F>>2):'')(P('8cf,4q,8fz,ch6,8hq,xpb,8f3,8jj,xov,6i|ru|356|24f,8fy,xmn|8ji|8cf,ciy,8e2,xm2,ciz,ciy|8e7,xof,xmn,356,8e7,8dm,8cf|ca2,bjf,ca3'.split`,`[P('1k3600d2mha35h7bi00jc000o03000000809l002003n0h3032e0fh4g0h'[P(s)%159%131%70%58])].split`|`.sort(_=>R()-.5)[0]))

ফর্ম্যাট এবং মন্তব্য

নিম্নলিখিত কোডে, ডেটা বিভাগগুলি কেটে দেওয়া হয়েছে। অনুপস্থিত অংশগুলি চিহ্নিত করা হয়েছে (...)

s => (                                  // given the state s
  P = n => parseInt(n, 36),             // P = base-36 parsing function
  R = Math.random,                      // R = random generator
  g = F =>                              // g = recursive function taking an encoded format F
    F ?                                 // if the format has not been yet fully processed:
      (                                 //   build a string consisting of:
        ' -' +                          //     0: space, 1: hyphen
        (R() * 10 | 0) +                //     2: a random digit
        'ABCD(...)YZ'[R() * 23 | 0]     //     3: a random uppercase letter (minus I, O, Q)
      )[F & 3] +                        //   pick the next character from this string
      g(F >> 2)                         //   recursive call, dropping the 2 consumed bits
    :                                   // else:
      ''                                //   stop recursion
  )(                                    // initial call to g():
    P(                                  //   base-36 decoding of a format picked from
      '8cf,4q,(...),ca3'.split`,`[      //     a list of binary encoded formats
        P(                              //       accessed through a base-36 decoded index
          '1k36(...)0h'[                //         picked from a lookup-table of 58 entries
            P(s) % 159 % 131 % 70 % 58  //           based on a hash of the state
          ]                             //         end of lookup-table access
        )                               //       end of lookup-table index decoding
      ].split`|`                        //     end of list access / split it on '|'
      .sort(_ => R() - .5)[0]           //     randomly pick a format from this list
    )                                   //   end of format decoding
  )                                     // end of call

ডেমো


5

টি-এসকিউএল, 1104 1100 797 657 বাইট

DECLARE @ CHAR(8)SELECT @=STUFF(value,1,2,'')FROM STRING_SPLIT(CAST(DECOMPRESS(CAST('H4sIAAAAAAAEAEWPUQ6DMAiGr2JCwlM9BKnZ7LTV2E7n7n+QlRbYC3yl8PNDCyIOAOACKcVstCudRYkytPSthUZPUrqM6KhxqC+3ZKNbaSWlNCltNuEJuozzdekITXDygu6xshNkx2u3xJhqREmWGUQqTiDWYpBLGEGkrOgij47N21k1eKdLM3trI+mF+h2tMSJK441qM3nDnQzLx/D8V69guM3mblvkiP1Q/SPwTqbs1XD2zVztKwnbL7p3wV77AcxSbMHfAQAA'as XML).value('.','varbinary(max)'))AS varchar(max)),','),t WHERE s=LEFT(value,2)ORDER BY NEWID()WHILE CHARINDEX('&',@)>0SET @=STUFF(@,CHARINDEX('&',@),1,SUBSTRING('ABCDEFGHJKLMNPRSTUVWXYZ',CAST(1+23*RAND()AS INT),1))WHILE CHARINDEX('#',@)>0SET @=STUFF(@,CHARINDEX('#',@),1,CAST(10*RAND()AS INT))PRINT @

সম্পাদনা 1: পরিবর্তন করে 300 বাইটের বেশি সঞ্চয় করা VALUES()হয়েছে STRING_SPLIT()(কেবল এসকিউএল 2016 এবং পরে উপলব্ধ)

সম্পাদনা 2: এখানে বর্ণিত GZIP সংক্ষেপণ ব্যবহার করে আরও 140 বাইট সংরক্ষণ করা হয়েছে । আমরা ইতিমধ্যে নিজেকে এসকিউএল 2016 এবং তারপরে সীমাবদ্ধ রেখেছি, সুতরাং এই ফাংশনগুলি উপলব্ধ।

ইনপুট পূর্ব বিদ্যমান টেবিল মারফত টি কলামে রাজ্য কোড সহ গুলি , আমাদের আই মান অনুযায়ী

সংক্ষিপ্ত স্ট্রিং প্রসারিত করার পরে, এখানে ফর্ম্যাট কোডটি রয়েছে, রাজ্যের সুপার লম্বা তালিকাগুলি সহ:

DECLARE @ CHAR(8)
SELECT @=STUFF(value,1,2,'')
FROM STRING_SPLIT('AK&&& ###,IA&&& ###,MS&&& ###,...
                         (long string continues)
                   ...,SC### #&&,TN&##-##&,UT&## #&&',','),t
WHERE s=LEFT(value,2)ORDER BY NEWID()

WHILE CHARINDEX('&',@)>0
    SET @=STUFF(@,CHARINDEX('&',@),1,
        SUBSTRING('ABCDEFGHJKLMNPRSTUVWXYZ',CAST(1+23*RAND()AS INT),1))

WHILE CHARINDEX('#',@)>0
    SET @=STUFF(@,CHARINDEX('#',@),1,
        CAST(10*RAND()AS INT))

PRINT @

সুতরাং আমি (স্টেট, প্যাটার্ন) এর সম্ভাব্য সমস্ত জোড়া সমন্বয়ে একটি বিশাল ইন-মেমরি টেবিল তৈরি করেছি। নোট করুন যে আমি সারিগুলি একত্রিত করছি না, প্রতিটি রাজ্য পৃথক, এবং IN এর মতো রাজ্যে 4 টি সারি থাকবে, প্রতিটি প্যাটার্নের জন্য একটি করে one

আমি যখন ইনপুট টেবিল, আমি এটি অনুসারে বাছাইয়ের জন্য যে ইন-মেমোরি টেবিল যোগদানের NEWID(), যা অর্ডার randomizes এবং পরিবর্তনশীল করার জন্য একটি র্যান্ডম মিলে যাওয়ার ধরণটি ফেরৎ @

আমি তারপরে কেবল প্রতিটি &এলোমেলো চিঠি #দিয়ে এবং প্রতিটি এলোমেলো অঙ্ক সহ এবং ফলাফলটি ফিরিয়ে দিই ।


4

> <> , 967 860 851 বাইট

</b:++d**d85-*i9*i2
v\+?\"00A AAA"
 /5:/
v\+?\"00000 AA"
 /4:/\
v\+?\x"000-AAA"
 /f:/
v\+?\>"AAA-000"
 /1:/
v\+ ?\"A00-00A"
v/cb:/\/"A000"
v\++?\xx"AA000"
v/88:/\x"000AAA"
v\+-?\ >"AAA000"
 /2f:/v\
v\*-?\xx"0000 AAA"
v/8c:/\x"00A AA0"
v\*-?\x>"000 AAA"
v/7c:/\"AA0 000"
v\*+?\"0000"
 /6b:/
v\*-?\"0000-AA"
 /5f:/
v\*-?\"0000AA0"
 /bc:/
v\+-?\"AAA-00A"
 /59:/
v\*+?\"000-AAA"
 /4a:/
v\*- ?\"000-000"
 /*a8:/
v\2+-?\"000AAA0"
 /*a8:/
v\9++?\"00000-AA"
 /*a8:/
v\5++?\"000-A00"
 /*a4:/
v\1+-?\"0000 000"
 /*a4:/
v\3+-?\"0000 AAA"
 /*a5:/
v\3++?\"AA0 00A"
 :63*+\:9a*4+-:aa*6++:73*+
 /*+9:/
v\***?\"000 AAA"
 8*-*$\::9a*-:4
 /7*ae/
v\++*?\"0000AAA"
 :4a*3\:aa*-:cb++:ca*4++:a7++:b+
v/**++/"0000-AAA"
v\***?/"AAA 000"
<ov?="A":v?="0":;?=1l
~!/0\v[0<
 l<1x/?=]!5
 +*2_/?= 1l
 -8::/*(~!*d2$**-2:-6:
^    >?!^"A"+o]
]~</0\v[0<
 l <1x/?=4
 + *2_<v?=1l
^n^?)9:<

এটি অনলাইনে ব্যবহার করে দেখুন , বা এটি মাছের খেলার মাঠে দেখুন !

এই কোডটির দুটি অংশ রয়েছে: প্যাটার্নের সাথে রাজ্যের সাথে মিলছে, তারপরে এলোমেলো অক্ষরগুলির সাথে প্যাটার্নটি প্রতিস্থাপন করা হবে। এগুলির কোনওটিই> <> এ সহজ নয়।

প্রথমত, আমরা দুটি অক্ষরে পড়ি, এবং 2 1 - 9  2 + 533 গণনা করি  , যেখানে সি 1 এবং সি 2দুটি চরিত্রের কোড। 2 এবং 9 টি বেছে নেওয়া হয়েছিল যাতে সূত্রটি প্রতিটি রাজ্যকে একটি অনন্য মূল্য দেয় এবং কেবলমাত্র 3> <> নির্দেশাবলী ব্যবহার করে তৈরি করা যায় এমন মানগুলির সংখ্যা সর্বাধিক করতে 533 এর অফসেটটি বেছে নেওয়া হয়েছিল - এটি শেষ হয়ে গেল 28 টির বাইরে তাদের মধ্যে 41। তারপরে আমরা কোডটির মাধ্যমে মাছের জিগ-জাগিংটি প্রেরণ করব যতক্ষণ না এটি সঠিক মান খুঁজে পায়, যার পয়েন্টে এটি জিগ-জাগ থেকে বেরিয়ে যায়, উপযুক্ত প্যাটার্নটি পড়ে এবং বাম দিকের কলামের দ্রুত প্রবাহে নিচে অংশ 2 এ প্রবেশ করে the রাজ্যগুলি, বিশেষত একাধিক নিদর্শনগুলির পছন্দগুলির সাথে কিছু বিশেষ বিবেচনার প্রয়োজন ছিল, তবে আমি কয়েকটি বাইট সংরক্ষণ করতে কোডের কিছু অংশ পুনরায় ব্যবহার করতে সক্ষম হয়েছি।

এরপরে, দ্বিতীয় ভাগের মতো, আমাদের যথাক্রমে "A" s এবং "0" গুলি এলোমেলো অক্ষর এবং সংখ্যাগুলির সাথে প্রতিস্থাপন করতে হবে। > <> এ একমাত্র র্যান্ডম কমান্ডটি হ'ল x, যা মাছের দিকটি এলোমেলোভাবে উপরে, নীচে, বাম এবং ডানদিক থেকে নির্ধারণ করে - 10 অঙ্ক বা 23 বর্ণের মধ্যে অভিন্ন কিছু চয়ন করার পক্ষে উপযুক্ত নয়। মাছগুলি কীভাবে এটি করে তা দেখতে সংখ্যাগুলি কিছুটা দেখুন:

]~</0\v[0<
 l <1x<v?=4
 l 1=_?\2*+
^n^?)9:<

উপরের ডান দিক থেকে মাছ প্রবেশ করে। মাছ একটি খালি স্ট্যাক সেট আপ করে - 0[- তারপরে এলোমেলোভাবে ধাক্কা দেয় 1বা 0সমান সম্ভাবনা সহ স্ট্যাকের দৈর্ঘ্য 4 না হওয়া পর্যন্ত:

   /0\v
 l <1x<v?=4
     _

এরপরে এটি চারটি 1এবং 0এর একত্রিত করে যেন তারা বাইনারি অঙ্ক হয় - l1=?\2*+0 থেকে 15 পর্যন্ত একটি নম্বর দেয় the ফলাফল যদি 9 এর চেয়ে বেশি হয় তবে এটি কেবল এটি করা সমস্ত কাজকে বাতিল করে দেয় এবং আবার চেষ্টা করে; অন্যথায়, এটি নম্বর মুদ্রণ করে এবং চালিয়ে যায়:

]~<   v[0<
     x<

^n^?)9:<

এলোমেলো অক্ষরগুলি তৈরি করা অনেকটাই একইরকম, কেবলমাত্র আমরা পরীক্ষা করে দেখি যে ফলাফলটি "I", "O" বা "Q" এর সাথে নয় ::8-:6-:2-**


3

গণিত, 635 507 470 বাইট

p=RandomChoice;a_±b_:=a<>b;r=""±Characters@"ABCDEFGHJKLMNPRSTUVWXYZ"~p~#&;j=""±ToString/@0~Range~9~p~#&;m=r@3;o=j@3;x=r@2;u=j@2;z=r@1;t=j@1;k=z±u±"-";w=m±" ";AS=y=j@4;AZ=GA=WA=m±y;CT=x±"-"±j@5;DC=x±"-"±y;FL=w±z±u;IL=x±" "±j@5;IN=p@{o±z,o±x,OK=o±m,s=m±o};CA=t±s;MD=t±x±y;MI=p@{OH=w±y,t±x±" "±z±u,AK=IA=MS=MP=VT=w±o};NV=u±z±"-"±o;NH=o±" "±y;NM=p@{MN=o±"-"±m,PR=m±"-"±o};NY=NC=PA=TX=VA=WI=m±"-"±y;RI=o±"-"±j@3;SC=p@{AR=KS=KY=LA=ND=OR=o±" "±m,VT};NJ=k±m;TN=k±u±z;UT=k±t±x;#&

@ জাংহওয়ানমিন থেকে -165 বাইট

ইনপুট ফর্ম

[এনভি]


1
আমি বর্ণমালা ব্যবহার করিনি [কারণ আমাদের 3 অক্ষর (আইওকিউ) বাদ দিতে হবে
J42161217

উফফফ, আমার শেষটি কাজ করে নি। কার্যকারিতা সংস্করণ: 507 বাইট: পেস্টবিন.
com

470 বাইট (সিপি \[PlusMinus]
-1252

1

পিএইচপি, 609 বাইট

<?$k='9 3';$l='3 9';$m='9-4';$f=[AK=>$k,IA=>$k,MS=>$k,MP=>$k,VT=>$k,'AS'=>4,AZ=>94,GA=>94,WA=>94,AR=>$l,KS=>$l,KY=>$l,LA=>$l,ND=>$l,'OR'=>$l,CA=>193,CT=>'8-5',DC=>'8-4',FL=>'9 72',IL=>'8 5',IN=>'37X38X39X93',MD=>184,MI=>'9 31X18 72X9 3',MN=>'3-9',NV=>'27-3',NH=>'3 4',NJ=>'72-9',NM=>'3-9X9-3',NY=>$m,NC=>$m,PA=>$m,TX=>$m,VA=>$m,WI=>$m,OH=>"$k1",OK=>39,PR=>'9-3',RI=>'3-3',SC=>"$kX3 18",TN=>'72-27',UT=>'72 18'];$a=str_split(ABCDEFGHJKLMNPRSTUVWXYZ);$n=range(0,9);$p=explode(X,$f[$argv[1]]);shuffle($p);for(;$c=$p[0][$i++];){if($c<1)echo$c;else for($j=0;$j<$c%6;$j++){echo$c>5?$a[rand(0,22)]:$n[rand(0,9)];}}

মূল ধারণাটি হ'ল অঙ্কের সাথে লাইসেন্স প্লেট প্যাটার্নটি এনকোড করা যা নির্দেশ করে যে কোনও অঙ্ক বা চিঠির কতগুলি পুনরাবৃত্তি অনুসরণ করে। 1 থেকে 5 সংখ্যার সংখ্যাকে বোঝায় যখন 7, 8 এবং 9 যথাক্রমে 1, 2 বা 3 বর্ণকে নির্দেশ করে। একাধিক নিদর্শনগুলি একটি এক্স দ্বারা পৃথক করা হয়, স্পেস এবং ড্যাশগুলি যেমন রয়েছে তেমন রাখা হয়। রাজ্য অনুসন্ধানটি একটি সরল অ্যারে কী লুকোচুরি, অনর্থক স্ট্রিংগুলি স্থান বাঁচাতে ভেরিয়েবলগুলিতে রাখা হয়।

Ungolfed:

<?php
$f=[
    AK=>'9 3',
    IA=>'9 3',
    MS=>'9 3',
    MP=>'9 3', 
    VT=>'9 3',
    'AS'=>4,
    AZ=>94,
    GA=>94,
    WA=>94,
    AR=>'3 9',
    KS=>'3 9',
    KY=>'3 9',
    LA=>'3 9',
    ND=>'3 9',
    'OR'=>'3 9',
    CA=>193,
    CT=>'8-5',
    DC=>'8-4',
    FL=>'9 72',
    IL=>'8 5',
    IN=>'37X38X39X93',
    MD=>184,
    MI=>'9 31X18 72X9 3',
    MN=>'3-9',
    NV=>'27-3',
    NH=>'3 4',
    NJ=>'72-9',
    NM=>'3-9X9-3',
    NY=>'9-4',
    NC=>'9-4',
    PA=>'9-4',
    TX=>'9-4',
    VA=>'9-4',
    WI=>'9-4',
    OH=>'9 31',
    OK=>39,
    PR=>'9-3',
    RI=>'3-3',
    SC=>'9 3X3 18',
    TN=>'72-27',
    UT=>'72 18'
];
$a=str_split(ABCDEFGHJKLMNPRSTUVWXYZ);
$n=range(0,9);
$p=explode('X',$f[$argv[1]]);
shuffle($p);
for ($i = 0; $i < strlen($p[0]); $i++) {
    $c=$p[0][$i];
    if ($c < 1)
        echo $c;
    else {
        for ($j = 0; $j < $c % 6; $j++){
            echo $c > 5 ? $a[rand(0,22)] : $n[rand(0,9)];
        }
    }
}

1

পিএইচপি ( ফার ), 495 বাইট

বাইনারি ফার ফাইলটি এখানে ডাউনলোড করা যায় এবং এটি দিয়ে চালানো যেতে পারে php uslic.phar <state code>

ফার তৈরি করার জন্য ব্যবহৃত কোড কোডটি নিম্নরূপ (820 বাইট):

<?$f=[AK=>'AAA 111',IA=>'AAA 111',MS=>'AAA 111',MP=>'AAA 111',VT=>'AAA 111','AS'=>'1111',AZ=>'AAA1111',GA=>'AAA1111',WA=>AAA1111,AR=>'111 AAA',KS=>'111 AAA',KY=>'111 AAA',LA=>'111 AAA',ND=>'111 AAA','OR'=>'111 AAA',CA=>'1AAA111',CT=>'AA-11111',DC=>'AA-1111',FL=>'AAA A11',IL=>'AA 11111',IN=>'111AX111AAX111AAAXAAA111',MD=>'1AA1111',MI=>'AAA 1111X1AA A11XAAA 111',MN=>'111-AAA',NV=>'11A-111',NH=>'111 1111',NJ=>'A11-AAA',NM=>'111-AAAXAAA-111',NY=>'AAA-1111',NC=>'AAA-1111',PA=>'AAA-1111',TX=>'AAA-1111',VA=>'AAA-1111',WI=>'AAA-1111',OH=>'AAA 1111',OK=>'111AAA',PR=>'AAA-111',RI=>'111-111',SC=>'AAA 111X111 1AA',TN=>'A11-11A',UT=>'A11 1AA'];$a=str_split(ABCDEFGHJKLMNPQRSTUVWXYZ);$n=range(0,9);$p=explode(X,$f[$argv[1]]);shuffle($p);for(;$i<strlen($p[0]);){$c=$p[0][$i++];echo$c==A?$a[rand(0,22)]:($c>0?$n[rand(0,9)]:$c);}

আপনি যদি সেই কোডটি থেকে নিজের তৈরি করতে চান তবে আপনাকে নিম্নলিখিতগুলি করতে হবে:

<?php
$phar = new Phar('uslic.phar', 0, 'u');
$phar->setSignatureAlgorithm(Phar::MD5);
$phar->addFile('s');
$phar['s']->compress(Phar::GZ);
$phar->setStub('<?include"phar://u/s";__HALT_COMPILER();');

আকর্ষণীয় যথেষ্ট, এই চেয়ে কম সংকোচনের আরও গল্ফযুক্ত সংস্করণের আরও

ফাইলটির হেক্সডাম্পটি হ'ল:

3C 3F 69 6E 63 6C 75 64 65 22 70 68 61 72 3A 2F 
2F 75 2F 73 22 3B 5F 5F 48 41 4C 54 5F 43 4F 4D 
50 49 4C 45 52 28 29 3B 20 3F 3E 0D 0A 30 00 00 
00 01 00 00 00 11 00 00 00 01 00 01 00 00 00 75 
00 00 00 00 01 00 00 00 73 34 03 00 00 26 C8 A9 
59 76 01 00 00 E3 82 AE C9 B6 11 00 00 00 00 00
00 55 90 5D 6F 82 30 14 86 FF 8A 17 4D 0A B1 26 
E2 9D 43 34 1D 4C 45 04 19 20 A2 84 2C 04 41 4D 
0C 12 74 CB 92 65 FF 7D A5 AD A3 DC 34 7D CE C7 
FB 9E 73 26 33 50 68 31 B6 B4 29 C4 18 F7 14 45 
81 C8 C4 22 D9 7E 87 5C 91 C2 40 24 88 7D 48 58 
A1 80 0F 2C C5 68 81 45 DA 11 E2 80 B0 C7 5A 7A 
24 00 91 E5 77 68 2F D2 1A 8B E4 18 22 C1 8D 07 
45 D6 69 2D F3 20 C4 C6 1C 28 CC DE D0 5B 84 68 
BE E6 3B 60 BA 3B A3 1E 2F 35 1D A6 8A A3 E6 E1
2F 8E 9E C2 B6 C1 6C 58 B1 6D B6 D7 50 22 85 49 
46 ED E9 B8 D6 80 CD 1F 52 A2 53 10 5A F2 E9 99    
92 B3 6A 94 FE 4B ED B6 B1 91 E3 2D 7B E6 C6 D7 
70 F4 0E BA B8 83 41 D4 C1 B0 9B DD 99 1D DC 2C
85 3D 08 5A FC 06 CD 2C AE D7 96 42 E4 99 7C 32
4A BE DE F6 45 74 99 A6 23 70 F8 2E 44 01 A2 6D
C0 88 E6 12 15 A4 DA FD 51 7F DC AB EB E5 21 E1 
57 DD 78 9B 2F 96 2B 6B 6D 3B EE BB E7 07 DB 70
17 ED 0F B2 0A 4A AD 4E CB 53 2E 0D D1 98 50 A5 
E5 DF D5 F5 76 CC A5 08 81 22 06 69 7D FA 8A 95 
24 91 D5 FB F9 B3 28 AE B9 04 2A 59 2D 6E B5 A4 
82 CB 84 18 5C F3 92 84 E2 21 A9 90 7F 40 A6 D1 
7F 0C 2E FD 7E A2 E6 D9 F9 46 42 1A 9E 81 34 26 
2E 47 62 32 1A C9 C9 8B 04 B2 E9 70 06 CA 67 70 
4C 62 20 93 D5 DF 3F A0 DB 74 9C 07 ED A5 F7 4D 
BA 32 97 A2 E7 9C 83 01 00 00 00 47 42 4D 42 

1

ক্লোজার, 502 501 বাইট

#(apply str(for[E[repeatedly]c(rand-nth(cond('#{AK IA MS MP VT}%)["D 3"]('#{AR KS KY LA ND OR}%)["3 D"]('#{AZ GA WA}%)["D4"]1(case % AS["4"]CA["1D3"]CT["C-5"]DC["C-3"]FL["D B1"]IL["C 4"]IN["3B""3C""3D""D2"]MD["1C3"]MI["D 4""1C B2""D 2"]MN["3-C"]NV["2B-2"]NH["3 3"]NJ["B2-C"]NM["3-D""D-2"]OH["D 3"]OK["3C"]PR["D-2"]RI["3-2"]SC["D 3""3 1B"]TN["B2-2"]UT["B2 1B"]["D-4"])))r(cond((set"BCD")c)(E(-(int c)65)(fn[](rand-nth"ABCDEFGHJKLMNPRSTUVWXYZ")))((set"1234")c)(E(-(int c)48)(fn[](rand-int 10)))1[c])]r))

ইনপুট আর্গুমেন্ট একটি চিহ্ন , একটি স্ট্রিং নয় symbol এটি আমাকে অনেকগুলি ডাবল-কোট এড়াতে দেয়। B- Dএনকোড পুনরাবৃত্তি A- AAA, 1- 4এনকোড পুনরাবৃত্তি 0- 0000


1

পাইথন 2 , 438 বাইট

import re,random
lambda s,R=range,C=random.choice:re.sub('\d',lambda c:''.join(C(['0123456789','ABCDEFGHJKLMNPRSTUVWXYZ'][c.group()>'4'])for _ in R(int(c.group())%5+1)),C("063;6-3;072;3;7 2,2 06;6-4;51-15;2-7,7-2;7 2;;7 3;;6 4;2 7;2 7;2-2;25,26,27,72;2 7;;7 3,06 51,7 2;7 2;73;;2 3;;7 51;;73;7 2;2 7;;27;2 7;;7 2;7-2;;73;;51-7;;51 06;;2-7;15-2;7 2;;7-3".split(";")["MDCASCTNMSOHILARINDMIAZNHFLWAKSOKYMPRGANJUTMNVTOR".find(s)].split(",")))

এটি অনলাইন চেষ্টা করুন!

পঠনযোগ্য সংস্করণ: এটি অনলাইনে চেষ্টা করুন!

statesস্ট্রিংটি কীভাবে কেবল 49 অক্ষর দীর্ঘ তা নোট করুন । আমি ওভারল্যাপিং চিঠিগুলিকে যথাসম্ভব একটিতে ভাঁজ করেছি ( MDDCCAASSC…) এবং বাদ দিয়েছি NY, NC, PA, TX, VA, WIযা এইভাবে সমস্ত মানচিত্র -1

তালিকায় codes, এর 12345অর্থ হ'ল বহু অঙ্ক এবং 678গড় (যে − 5) অনেকগুলি অক্ষর।


1

সি (জিসিসি) , 473 469 বাইট

-৪ বাইটের জন্য সিলিংক্যাটকে ধন্যবাদ।

প্রথম দুর্বল প্রচেষ্টা। আমার সন্দেহ হয় স্ট্রিংগুলি যথেষ্ট পরিমাণে ছোট করার একটি উপায় আছে।

n,c,d,i;f(char*s){n=0;for(s=strstr("AKnIAnMSnMPnVTnAS`AZrGArWArARfKSfKYfLAfNDfORfCAlCTtDCsFLpILmINbcdqMDkMInojMNhNViNHgNJuNMhxNYyNCyPAyTXyVAyWIyOHoOKdPRxRIaSCoeTNvUTw",s)+2;s[n]>90;n++);for(s="4    3-3  3A   3B   3C   3 1B 3 C  3 4  3-C  2A-3 1B A21B4  1BA3 B 5  C 3  C 4  C A2 C3   C4   B-4  B-5  A2-C A2-2AA2 1BC-3  C-4  "+(s[rand()%n]-96)*5,n=5;d=c=*s++,n--;)for(c>57?i=c-64,c=65:c>47?i=c-48,c=48:(i=1);i--;putchar(d))while(i&&index("IOQ",d=rand()%(c>57?26:10)+c));}

এটি অনলাইন চেষ্টা করুন!


পছন্দ করুন
গ্যাস্ট্রোপনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.