Gyakorlati alapok
PIN-kód listázása
Ebben a rövid fejezetben a kombinatorikában már megszokott módszerrel listázzuk ki a lehetséges PIN-kód variációkat.
Azt hiszem mindannyiunknak van-volt már bankkártyája vagy mobiltelefonja, amelyhez nagy valószínűséggel kötelező a PIN-kód használata. Ez a kód (PIN = személyi azonosító szám - Personal Identification Number) 4 számjegyből áll és hasonlít egy konkrét, négyjegyű számjegyhez (például 5412), de valójában nem az, hiszen míg a PIN-kód használatakor elméletileg megengedettek olyan számvariációk, mint például 0000, 0001, 0123 (mindezek egyébként a Pénzes-féle Gitáriskolában skálavariációként is értelmezhetők), addig a “klasszikus” matematikában már nem.
Tehát ez a 4 számjegy csak 4 db összeillesztett számvariáció 0 és 9 között. Ebből következően variációs tartománya 0000 és 9999 között mozoghat, összesen 10000 db variációval.
A konkrét számításra a kombinatorikai lehetőségek közül az ismétléses variációt alkalmazhatjuk, mert nk képlet alapján 104 = 10000. Implementációs listázó motorunk a már jól bevált egybeágyazott ciklusok, amelyekben kiválóan felhasználhatjuk az összes iterátort (i, j, k, l), sőt még feltételeket sem kell állítanunk.
Nézzük meg a futtatható Java-kódot:
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++){
for (int k = 0; k < 10; k++){
for (int l =
0; l < 10; l++){
System.out.println(i+""+j+""+k+""+l);
}
}
}
}
}
}
Végeredmény:
0000
0001
0002
0003
...
9997
9998
9999
Érdemes felfigyelnünk a System.out.println() függvényben lévő aposztrófokra ("")!
Nélkülük a rendszer nem karakterekként, hanem integer típusú számokként értelmezi az iterátorokat, ezért kiíráskor összeadja őket. Ezzel az eredménylistával persze nem sokat tudunk kezdeni. Futtatással ellenőrizzük le ezt az érdekességet is!