Gyakorlati alapok
Az új magyar autórendszám még izgalmasabb rejtélyei
Az előző fejezetben a témakör megfelelő előzetes kidolgozása után kilistáztuk a magyar autórendszámokat. Ez voltaképpen azt jelenti, hogy bár a problémáról kellő részletességgel nyilatkoztunk, azt csakis matematikailag és programozástechnikailag oldottuk meg, nem pedig valós, adminisztratív elvárások alapján, mert nincsenek meg az ehhez szükséges információk.
Ebben a fejezetben reagálunk az új autórendszámokra, amelyeket ebben az évben, azaz 2022-ben kezdtek kiosztani. A változás egyszerű és könnyen látható:
Míg a régi autórendszámban 3 nagybetűs karakter és 3 szám szerepel, addig az új változatban 4 karakter és 3 szám.
A változtatás zseniális, valószínűleg rengeteg dolgozott rajta a Belügyminisztérium matematikai kutatócsapata!
Nézzük meg az ehhez kapcsolódó matematikát!
Az alap karakterkészlet angol nyelv gyökerű, mert láthatóan nincsenek
megengedve a nemzeti betűkarakterek, például Ű, ebből következően 26
nagybetűből áll...
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
...így értékkészlete AAAA és ZZZZ között váltakozik.
A számok értékkészletét sem nehéz kitalálnunk, hiszen 000 és 999 között mozog.
Ha a 2 csoportot egyesítjük, akkor a teljes értékkészlet AAAA-000 és ZZZZ-999
között lesz. Ez veti fel a legfontosabb kérdést, miszerint mekkora lesz a
teljes variációs lehetőség, azaz AAAA-000 és ZZZZ-999 közötti tartomány?
A 4 db nagybetű variálgatása tisztán kombinatorikai kérdés, annak ismétléses
variációs változata és a végeredmény a 264 képlet
alapján az 456 976 lesz. Ehhez jön
sorozatonként az 1000-szeres szorzó, hiszen 1 betűsorozathoz 1000 db további
számvariáció illeszthető. Például:
1. - AAAA-000
...
1000. - AAAA-999
Tehát a fenti részeredményt még meg kell szorozni 1000-rel:
456 976 x 1000 = 456 976 000
Évente (becsült)
500.000 db autórendszám kiosztása esetén ez a mennyiség elég lesz
Magyarországon az elkövetkező majdnem 1000 évre (913,952 év), tehát ez a
rendszámsorozat ki fog futni kb. 3022-re. Láthatóan ez már jóval nagyobb
variációs mennyiség az előzőnél és megjegyzem: kis ésszel lehetett volna
ezzel is kezdeni.
Ám a ténylegesen felhasznált rendszámvariációk ennél nyilvánvalóan kevesebben
vannak. Erről részletesen írok az előző
fejezetben.
A rendszámtömeg teljes matematikai listázásához kvázinukleáris kombinatorikai
szuperfegyverünket töltjük csőre, ami az
egybeágyazott for ciklusok
használata. Kombinációs mélysége mindig annyi lesz, amennyi a variálandó
karakterek száma, jelen esetünkben 7 (mert 4 karakter + 3 számról van szó). Az
1., 2., 3., 4. ciklus a betűket, a 5., 6., 7. ciklus a számokat variálja. Az angol
nagybetűs karakterkészletet érdemes letennünk egy állandó,
String típusú
tömbbe...
String[] tomb = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}
...mert így elemeire könnyű lesz hivatkozni (tomb[x]). Ha ezután a futtatásra kattintunk, akkor a JVM derekasan elkezdi listázni a variációkat és akár néhány év alatt végezhet is.
Gyors számítás: ha a kódba 1 másodperces késleltetést iktatnánk, akkor
nyilvánvalóan 456 976 000 másodpercig tartana a listázás. Ez a
456 976 000 / 60
/ 60 /24 képlet alapján több mint 5289 napot, azaz több mint 14 évet jelentene.
A listázást a konzol feletti piros gombra való
kattintással tudjuk megállítani. Arra se számítsunk, hogy a gyorsaság miatt a
konzol pontosan fogja megjeleníteni, emiatt a végeredménynél is csak 1 rövid
részletet tudtam megmutatni.
Nézzük meg a futtatható Java-kódot:
public class Main {
public static void main(String[] args) {
String[] tomb =
{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
for(int i = 0; i < tomb.length; i++){
for(int j = 0; j < tomb.length; j++){
for(int k = 0; k < tomb.length; k++){
for(int l =
0; l < tomb.length; l++){
for(int m = 0; m <= 9; m++){
for(int n = 0; n <= 9; n++){
for(int o = 0; o <= 9; o++){
System.out.print(tomb[i] + tomb[j] + tomb[k] + tomb[l] + "-" + m + n + o);
System.out.println();
}
}
}
}
}
}
}
}
}
Végeredmény (például):
...
AAHK-995
AAHK-996
AAHK-997
AAHK-998
AAHK-999
AAHL-000
AAHL-001
AAHL-002
AAHL-003
AAHL-004
AAHL-005
…