Diberikan salah satu dari yang berikut sebagai masukan:
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
(dengan kutipan)
"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"
Menghasilkan dan mengeluarkan plat nomor acak (seragam) dari format yang cocok dengan input. Jika ada beberapa format (dipisahkan koma), gunakan format acak (seragam):
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
Dimana A
artinya karakter acak dalam huruf kecil minus IOQ
dan0
berarti angka satu digit acak ( 0
ke 9
).
Semua informasi dari Wikipedia . Ini (negara bagian) adalah semua yang saya pahami dan yang tidak memiliki aturan yang salah.
Ini kode-golf , jadi jawaban tersingkat dalam byte menang!
code-golf
random
generation
Stephen
sumber
sumber
IN
. Apakah kita secara seragam memilih format (salah satu dari 000A, 000AA, 000AAA atau AAA000), lalu memilih angka dari format tersebut (masing-masing format memiliki bobot yang sama). Atau apakah kita mempertimbangkan ruang angka untuk semua format untuk keadaan itu dan memilih dari seluruh ruang angka (format yang lebih besar berbobot lebih besar)?Jawaban:
Perl 6 ,
492350 byteCobalah online!
Saya jauh di depan setelah upaya pertama saya, saya tidak melakukan banyak upaya untuk memangkas kode. Sekarang sudah.
Dalam penyandian saya pada pola plat nomor, angka 1-4 menunjukkan jangka dari banyak digit acak, dan angka 5-7 menunjukkan run dari huruf yang diizinkan secara acak, dengan panjang empat kurang dari nomor.
sumber
Python3,
861821819714678674670662661658596591561555551536 byte.-8 byte berkat @DestructibleLemon (
b=a+
... dand=B
...), -15 byte terima kasih kepada @Felipe Nardi Batista (lambda dan variabel tidak berguna)Dan terima kasih kepada semua orang yang mengobrol yang membantu golf ini!
Cobalah online
Setiap saran bermain golf disambut (dan diinginkan). Dan, tolong, jika Anda menemukan kesalahan, katakan saja melalui komentar!
sumber
IA
kelist[0]
atau sesuatu seperti itu (saya tidak tahu python)b= a+"0"
? d bisa = B [1:]?b
tidak mungkina+'0'
, karena saya mengacaukan plat nomor.JavaScript (ES6),
374368 byteDiformat dan dikomentari
Dalam kode berikut, bagian data telah terpotong. Bagian yang hilang ditandai dengan
(...)
.Demo
Tampilkan cuplikan kode
sumber
T-SQL,
1104 1100 797657 byteEDIT 1: Disimpan lebih dari 300 byte dengan mengubah
VALUES()
keSTRING_SPLIT()
(hanya tersedia di SQL 2016 dan yang lebih baru)EDIT 2: Menyimpan 140 byte lainnya dengan menggunakan kompresi GZIP seperti dijelaskan di sini . Kami telah membatasi diri untuk SQL 2016 dan yang lebih baru, jadi fungsi-fungsi ini tersedia.
Input melalui tabel yang sudah ada t dengan kode Negara di kolom s , sesuai standar IO kami .
Setelah memperluas string terkompresi, inilah kode yang diformat, dengan daftar status super panjang yang terpotong:
Jadi saya membuat tabel besar di memori yang terdiri dari semua pasangan yang mungkin (status, pola). Perhatikan bahwa saya tidak menggabungkan baris, setiap negara bagian terpisah, dan negara bagian seperti IN akan memiliki 4 baris, satu untuk setiap pola.
Ketika saya bergabung dengan tabel di memori ke tabel input, saya urutkan berdasarkan
NEWID()
, yang mengacak urutan dan mengembalikan pola pencocokan acak ke variabel@
.Saya kemudian hanya mengganti masing
&
- masing dengan huruf acak, dan masing#
- masing dengan angka acak dan mengembalikan hasilnya.sumber
> <> ,
967860851 byteCobalah online , atau tonton di taman bermain ikan !
Kode ini memiliki dua bagian: mencocokkan keadaan dengan pola, lalu mengganti pola dengan karakter acak. Tak satu pun dari hal-hal ini mudah di> <>.
Pertama-tama, kita membaca dalam dua karakter, dan menghitung 2 c 1 - 9 c 2 + 533, di mana c 1 dan c 2adalah dua kode karakter. 2 dan 9 dipilih sehingga rumus memberikan masing-masing negara nilai unik, dan offset 533 dipilih untuk memaksimalkan jumlah nilai-nilai ini yang dapat dibuat hanya menggunakan 3> <> instruksi - itu akhirnya menjadi 28 keluar dari 41 dari mereka. Kami kemudian mengirim ikan zig-zag ke bawah melalui kode sampai menemukan nilai yang tepat, pada titik itu lolos dari zig-zag, membaca pola yang sesuai dan memasuki aliran cepat di kolom paling kiri ke Bagian 2. Beberapa dari menyatakan, terutama yang dengan pilihan beberapa pola, memerlukan beberapa pertimbangan khusus, tetapi saya berhasil menggunakan kembali beberapa bagian dari kode untuk menyimpan beberapa byte.
Selanjutnya, alias Bagian 2, kita harus mengganti "A" dan "0" masing-masing dengan huruf dan angka acak. Satu-satunya perintah acak dalam> <> adalah
x
, yang menetapkan arah ikan secara acak dari atas, bawah, kiri dan kanan - tidak kondusif untuk memilih sesuatu yang seragam dari 10 digit atau 23 huruf. Mari kita lihat angka-angkanya untuk melihat bagaimana ikan melakukannya:Ikan masuk dari kanan atas. Ikan menyiapkan tumpukan kosong -
0[
- lalu mendorong secara acak1
atau0
dengan probabilitas yang sama hingga tumpukan tersebut memiliki panjang 4:Ini kemudian menggabungkan keempat
1
dan0
bersama-sama seolah-olah mereka adalah digit biner -l1=?\2*+
- memberikan angka dari 0 hingga 15. Jika hasilnya lebih besar dari 9, itu membuang semua pekerjaan yang baru saja dilakukan dan mencoba lagi; jika tidak, ia mencetak nomor dan melanjutkan:Membuat huruf acak hampir sama, kecuali kami juga memeriksa bahwa hasilnya tidak "I", "O" atau "Q" dengan
::8-:6-:2-**
.sumber
Mathematica,
635507470 byte-165 byte dari @JungHwanMin
formulir input
sumber
\[PlusMinus]
: pastebin.com/cGHvSJRiPHP, 609 byte
Gagasan utamanya adalah menyandikan pola pelat nomor dengan angka yang menunjukkan berapa banyak pengulangan angka atau huruf yang diikuti. 1 hingga 5 mengacu pada jumlah digit sementara 7, 8 dan 9 merujuk pada 1, 2 atau 3 huruf, masing-masing. Banyak pola dipisahkan oleh tanda X, spasi dan garis dijaga apa adanya. Pencarian status adalah pencarian kunci array sederhana, string redundan dimasukkan ke dalam variabel untuk menghemat ruang.
Tidak Terkumpul:
sumber
PHP ( Phar ), 495 byte
File Phar biner dapat diunduh sini dan dapat dijalankan dengan
php uslic.phar <state code>
.Kode dasar yang digunakan untuk menghasilkan Phar adalah sebagai berikut (820 byte):
Jika Anda ingin membuat Phar sendiri dari kode itu, Anda harus melakukan yang berikut:
Cukup menarik, kompres ini lebih baik daripada versi yang lebih golf .
Hexdump dari file tersebut adalah:
sumber
Clojure,
502501 byteArgumen input adalah simbol , bukan string. Ini biarkan saya menghindari banyak tanda kutip ganda.
B
-D
encode repetitionsA
-AAA
,1
-4
encode repetitions0
-0000
.sumber
Python 2 , 438 byte
Cobalah online!
Versi yang dapat dibaca: Coba online!
Perhatikan bagaimana
states
string hanya 49 huruf. Saya melipat huruf yang tumpang tindih menjadi satu sebanyak mungkin (MD
→DC
→CA
→AS
→SC
...) dan menghilangkanNY, NC, PA, TX, VA, WI
semua peta-1
.Dalam daftar
codes
,12345
berarti banyak digit dan678
rata - rata (− 5) banyak huruf.sumber
C (gcc) ,
473469 byteBerkat ceilingcat untuk -4 byte.
Upaya lemah pertama. Saya menduga ada cara untuk mempersingkat string secara substansial.
Cobalah online!
sumber