Python :: Aufgabe #334
1 Lösung
Alphametik – ein Logikrätsel
Anfänger - Python
von eisheiliger
- 17.03.2021 um 17:25 Uhr
Gegeben sei folgende Addition:
I B X B J J + U B I J U J = J O T F M O
Die Aufgabe besteht darin, jedem Buchstaben genau die Ziffer zwischen 0 bis 9 zuzuordnen
I = 1, U= 2, F = 3, J = 4, X = 5, M = 6, T = 7, O = 8, B = 9
damit die Addition aufgeht. Hier ist das Ergebnis:
1 9 5 9 4 4 + 2 9 1 4 2 4 = 4 8 7 3 6 8
Gibt es eine oder mehrere Lösungen? Im Internet findet Ihr weitere Alphametiken.
Viel Erfolg – viel Spaß.
I B X B J J + U B I J U J = J O T F M O
Die Aufgabe besteht darin, jedem Buchstaben genau die Ziffer zwischen 0 bis 9 zuzuordnen
I = 1, U= 2, F = 3, J = 4, X = 5, M = 6, T = 7, O = 8, B = 9
damit die Addition aufgeht. Hier ist das Ergebnis:
1 9 5 9 4 4 + 2 9 1 4 2 4 = 4 8 7 3 6 8
Gibt es eine oder mehrere Lösungen? Im Internet findet Ihr weitere Alphametiken.
Viel Erfolg – viel Spaß.
Lösungen:
import random
a, b, c = 'IBXBJJ', 'UBIJUJ', 'JOTFMO'
zeichensatz = []
zahlensatz = []
def erstelle_zeichensatz(zeichen):
for i in zeichen:
if i not in zeichensatz:
zeichensatz.append(i)
def erstelle_zahlensatz():
zahlensatz.clear()
i = 0
while i < len(zeichensatz):
n = random.randint(0,9)
if n not in zahlensatz:
zahlensatz.append(str(n))
i += 1
def in_zahl(s):
s_zahl = ''
for i in s:
if i in zeichensatz:
s_zahl += zahlensatz[zeichensatz.index(i)]
return int(s_zahl)
zeichen = a + b + c
erstelle_zeichensatz(zeichen)
erstelle_zahlensatz()
while in_zahl(a) + in_zahl(b) != in_zahl(c):
erstelle_zahlensatz()
print(in_zahl(a), '+', in_zahl(b), '=', in_zahl(c))
