Python :: Aufgabe #334

1 Lösung Lösung öffentlich

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ß.

Lösungen:

1 Kommentar
vote_ok
von AlexGroeg (2010 Punkte) - 15.04.2021 um 16:36 Uhr
Quellcode ausblenden 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))

1817897

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.