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.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

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:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 



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!