Palindromszámok

 

Egy karaktersort Palindromnak nevezünk, ha elölről és a végéről olvasva is ugyanazon karaktersorozatot kapjuk. Közismert, Palindromnak nevezett magyar mondatok a következők:

 

- Géza kék az ég

- Indul a pap aludni

- Kis Elek elesik, stb.

 

Ezek a példák csak kiejtés szerinti Palindromok, mert szigorú értelemben nem azok, a figyelembe nem vett szóközök, illetve a kis- és nagy betűk különbözősége miatt.

 

            Egy számot Palindromszámnak nevezünk, ha valamelyik számrendszerben számjegyei szigorú értelemben véve Palindrom karaktersort alkotnak. Számos Web helyen utánanézhetünk például a 10-es és számrendszerekben Palindrom számoknak, de nem 10-es számrendszerbeli Palindrom számokra is számos példát találunk. Megadják számukat és képzési eljárásukat.

 

Tennék egy kis látszólagos kitérőt. Amikor az információ egységéről és méréséről tanulunk informatika órán, fel szoktam tenni azt a kérdést, hogy hány bit információhoz jutunk, ha valakinek megtudjuk a születésnapját. A megoldás igen egyszerű. Mivel 366-féle lehetőségből tudjuk meg azt, hogy melyik a születésnap, ezért a 365-öt (a szabály szerint 366-1-et) felírjuk kettes számrendszerben, ahány jegyű kettes számrendszerbeli számot kapunk, annyi bit-egész információmennyiséghez jutottunk. (Az információmennyiség meghatározási szabálya szerint, a lehetséges eseteknek egyformán valószínűnek kell lenni, ami itt nem teljesül, hiszen február 29-e valószínűsége a többinek a negyede. De, mivel az információt csak egész számként – és nem valósként – kapjuk, így ez az eredményen – a bitek számában – nem jelent különbséget, hiszen a 365 messze van 2 bármelyik hatványától, tehát csak annyi a különbség, hogy az utolsó bit 0, vagy 1.) Az átírást osztással hajtjuk végre:

 

365 : 2  = 182,            maradék 1.

182 : 2  = 91,              maradék 0.

  91 : 2  = 45,              maradék 1.

  45 : 2  = 22,              maradék 1.

  22 : 2  = 11,              maradék 0.

  11 : 2  = 5,                maradék 1.

    5 : 2  = 2,                maradék 1.

    2 : 2  = 1,                maradék 0.

    1 : 2  = 0,                maradék 1.

 

            A szabály szerint a maradékok fordított sorrendben (utolsó maradék az első jegy, az első pedig az utolsó) adják a kettes számrendszerbeli alakot. Történt aztán, hogy az egyik tanítvány elfelejtette ez utóbbi szabályrészt, azaz a maradékokat a létrejöttük sorrendjében írta fel. Speciálisan az eredmény ugyanaz, mint a fordított sorrend, merthogy ez a szám Palindrom. Ilyenkor fel szoktam tenni a diákoknak azt a kérdést, hogy vajon mely számok kettes számrendszerbeli alakja Palindrom. Nem volt még diák, aki azzal fordult volna hozzám, hogy foglalkozott a problémával, esetleg segítséget kért volna.

 

Így aztán magam kezdtem ebben a témában vizsgálódni. Sőt még tovább is léptem. Arra gondoltam, hogy az alapfeladat igen egyszerű, bonyolítsunk rajta egy kicsit. Így a jelen lapon elsőként arra a kérdésre keresem a választ, hogy melyek azok a számok, amelyek 10-es és 2-es számrendszerben is Palindromok. Írtam egy programot az ilyen számok megkeresésére. A programban megadhatjuk, hogy mely számtól induljon a keresés. A program a 0 kivételével csak páratlan számok között keres, hiszen egy kettes számrendszerbeli szám biztosan 1-el kezdődik, és mivel Palindrom, 1-re is kell végződnie, azaz a szám biztosan páratlan. Start után a minél gyorsabb futás érdekében csak minden tízmilliomodik számnál frissül a képernyő. A program kiírja az utolsónak megtalált számot és a megtalálási időpontját is. A kapott listát egy Palind.csv állományba ki is menthetjük, sőt a következő futtatás idején be is tölthetjük, azzal a számmal együtt, ameddig a program a vizsgálat során már eljutott. Ez utóbbira a hosszú futási idő miatt van szükség, így több menetben eljuthatunk nagyon nagy számokig.

 

A megfelelő tulajdonságú számok száma nem lehet túl nagy, hiszen – mint ahogy azt a futtatási kép is mutatja – 1000 milliárdig csak 39 ilyen szám van. A program futtatási képe a 1000 milliárdig tartó keresés végén – mely napokig tartott – a következő:

 

 

Ezek alapján szerintem elég logikus a következő kérdés: vajon hány ilyen szám létezik, ha ekkora értékig csak 39-et találtam. Vajon véges vagy végtelen az ilyen számoknak a száma? A választ egyelőre nem tudom. Ha valakinek van ötlete hozzá, szívesen megismerném.

 

            A következő általánosítás abban az irányban történt, hogy mi a helyzet akkor, ha a 10-es mellett nem 2-es, hanem 3-as számrendszerben keresünk. Palindrom alakokat. Most csak 1 milliárdig kerestem. Íme a futási kép:

 

 

Ekkor úgy döntöttem, hogy általánosítom a program lehetőségeit. Lehessen inputon megadni azt a két alapot, amelyben keresünk. Az első alap mindig 10 volt, a másodikat 16-ig változtattam, valamint 100 millióig történt a keresés. A futási képek:

 

 

 

 

 

 

 

 

 

 

 

 

 

Összefoglalva:

 

10 – 2: 39 db               1 billióig.

10 – 3: 32 db               100 millióig.

10 – 4: 28 db               ’’

10 – 5: 20 db               ’’

10 – 6: 48 db               ’’

10 – 7: 20 db               ’’

10 – 8: 31 db               ’’

10 – 9: 40 db               ’’

10 – 11: 52 db             ’’

10 – 12: 27 db             ’’

10 – 13: 41 db             ’’

10 – 14: 24 db             ’’

10 – 15: 34 db             ’’

10 – 16: 37 db             ’’.

 

A következő lépés az volt, hogy elszakadtam a 10-es számrendszertől és két egymás utáni értéket választottam a két alapnak. (A futtatási határértékek azért kisebbek. mint fentebb, mert mindkét számrendszerbe át kell írni a 10-es alakról a számokat, így a vizsgálat időigényesebb.)  A következő eredményeket kaptam:

 

2 – 3: 5 db                   5 milliárdig.

3 – 4: 10 db                 20 millióig.

4 – 5: 12 db                 20 millióig

5 – 6: 17 db                 10 millióig

6 – 7: 20 db                 4 millióig

7 – 8: 27 db                 10 millióig

8 – 9: 31 db                 2 millióig

9 – 10: 32 db               2,5 millióig.

 

Ezek közül számomra a legérdekesebb az első. Kettes és hármas számrendszerben is Palindrom szám 5 milliárdig összesen 5 van, ráadásul ebből csak három a nem triviális, hiszen a 0 és az 1 bármilyen számrendszerben Palindrom. Nézzük ennek a futási képét:

 

 

Nevezzem Poli-Palindrom számoknak azokat a számokat, amelyeknek kettőnél több számrendszerben is Palindrom az alakjuk. A táblázatok egyszerű összevetésével találtam egy olyan számot, ami négy számrendszerben is Palindrom: a tízes számrendszerbeli 373 négyesben 11311, nyolcasban 565, míg kilencesben 454 alakú. Nyilvánvaló volt a további vizsgálódási irány, keressünk minél több számrendszerben Palindrom számokat. Ennek érdekében tovább módosítottam a programot. Arra gondoltam, hogy a számrendszerek alapját 2-16 intervallumból választom. (Nincs semmi elvi akadálya, hogy az alap magasabb legyen, de úgy gondoltam számomra ezek az esetek is elég érdekesek lehetnek.) Az első futtatásoknál kiderült, hogy a triviális számok (0-16) kivételével kevés olyan szám van, ami 4-nél több számrendszerben is Palindrom és olyanból sincs túl sok, amely 4-ben is az. Lássunk egy ilyen futtatási képet, 1 milliárd értékig:

 

 

 

 

Csak maximálisan 5 számrendszerbeli alakot jelenítek meg. A lista elején 13-ig természetesen további Palindrom alakok lennének láthatók, de ezek mind eléggé triviális értékek, könnyen előállíthatók. 1 milliárdig összesen csak 59 olyan szám létezik, amelyik legalább 4 számrendszerben Palindrom alakú. A táblázat egyik érdekessége, hogy az utolsónak megtalált 9 szám mindegyike 2, 4, 8 és 16-os számrendszerekben Palindrom alakú.

 

A másik érdekesség, hogy a táblázatban található egy olyan nem triviális szám is, amely 5 számrendszerben is Palindrom. Ez a decimális 255. De több ilyet nem látunk. Ezért, csak ennek az esetnek a vizsgálatára újrafutattam a programot, ezúttal 3 milliárdig, de újabb ilyen tulajdonságú számot nem találtam: