Fizika, matek, informatika érettségi

Home Fizika Excel Access A weboldalról

56. Számrendszerek

5. szint

Egy természetes szám valódi értékét a különböző számrendszerekben más-más számjegyekkel tudjuk leírni. Például a 47 (tízes számrendszerben) a hármas számrendszerben az 12023, míg a négyes számrendszerben a 2334 alakban írható.
Adott két, különböző számrendszerben megadott szám a számjegyeivel:
1. szám: 110a10101
2. szám: 223313020003


Nem tudjuk, hogy melyik számrendszerekben vannak megadva a számok, de ugyanazt a tízes számrendszerbeli számot jelentik. A számrendszerek alapszáma 2 és 16 közötti (beleértve a határokat is). A 10-nél nagyobb számjegyek jelölése a szokásos 10→a; 11→b; 12→c; 13→d; 14→e; 15→f.

Feladatok:
a) Melyik 10-es számrendszerbeli számot jelöli mindkét megadott szám, ha a megfelelő számrendszerekben értelmezzük őket?
b) Mennyi az 1. szám számrendszerének alapszáma, ha a 10-es számrendszerbeli értéke ugyanannyi, mint a 2. számé, ha azt is a megfelelő számrendszerben értelmezzük?
c) Mennyi a 2. szám számrendszerének alapszáma, ha a 10-es számrendszerbeli értéke ugyanannyi, mint az 1. számé, ha azt is a megfelelő számrendszerben értelmezzük?

Minta:
a) 882220899
b) 13
c) 6



szam1 = '110a10101'
szam2 = '223313020003'
szamjegyek = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']
ertek1 = [] # alapszám, érték 10-es számrendszerben
ertek2 = []

for alap in range(4,17):
if alap>10:
ertek = 0
hatvany = 1
for i1 in range(len(szam1)):
szjegy = szamjegyek.index(szam1[len(szam1)-i1-1])
ertek += hatvany * szjegy
#print('alap',alap, 'hatvány',hatvany,'érték',ertek,'számjegy',szjegy)
hatvany *= alap
ertek1.append([alap,ertek])
if alap>3:
ertek = 0
hatvany = 1
for i1 in range(len(szam2)):
szjegy = szamjegyek.index(szam2[len(szam2)-i1-1])
ertek += hatvany * szjegy
#print('alap',alap, 'hatvány',hatvany,'érték',ertek,'számjegy',szjegy)
hatvany *= alap
ertek2.append([alap,ertek])
#print(ertek1)
#print(ertek2)

for i1 in range(len(ertek1)): # megnézzük az egyező értékeket
for i2 in range(len(ertek2)):
if ertek1[i1][1] == ertek2[i2][1]:
index1 = i1
index2 = i2
print('a)',ertek1[index1][1])
print('b)',ertek1[index1][0])
print('c)',ertek2[index2][0])