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:
Python-Code
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))