Krypto-Arithmetik Frage?

PMeindl  16.08.2024, 16:43

Was genau willst du wissen?

Tablitia 
Beitragsersteller
 16.08.2024, 17:00

Für jede Buchstabe gibt es nur eine passende Ziffer. Ich will die Buchstaben in Ziffern umwandeln

2 Antworten

[Ich gehe mal vom üblichen Dezimalsystem aus.]

Wenn unterschiedliche Buchstaben unterschiedlichen Ziffern entsprechend sollen, gibt es nur die folgende Lösung:

SEND + MORE = MONEY
9567 + 1085 = 10652

Wenn unterschiedliche Buchstaben der gleichen Ziffer entsprechend dürfen (auch wenn ich nicht davon ausgehe, dass das gemeint ist), gibt es mehrere Lösungen, nämlich..

SEND + MORE = MONEY
9000 + 1000 = 10000
9001 + 1000 = 10001
9002 + 1000 = 10002
9003 + 1000 = 10003
9004 + 1000 = 10004
9005 + 1000 = 10005
9006 + 1000 = 10006
9007 + 1000 = 10007
9008 + 1000 = 10008
9009 + 1000 = 10009
9010 + 1090 = 10100
9011 + 1090 = 10101
9012 + 1090 = 10102
9013 + 1090 = 10103
9014 + 1090 = 10104
9015 + 1090 = 10105
9016 + 1090 = 10106
9017 + 1090 = 10107
9018 + 1090 = 10108
9019 + 1090 = 10109
9110 + 1001 = 10111
9111 + 1001 = 10112
9112 + 1001 = 10113
9113 + 1001 = 10114
9114 + 1001 = 10115
9115 + 1001 = 10116
9116 + 1001 = 10117
9117 + 1001 = 10118
9118 + 1001 = 10119
9120 + 1091 = 10211
9121 + 1091 = 10212
9122 + 1091 = 10213
9123 + 1091 = 10214
9124 + 1091 = 10215
9125 + 1091 = 10216
9126 + 1091 = 10217
9127 + 1091 = 10218
9128 + 1091 = 10219
9129 + 1081 = 10210
9220 + 1002 = 10222
9221 + 1002 = 10223
9222 + 1002 = 10224
9223 + 1002 = 10225
9224 + 1002 = 10226
9225 + 1002 = 10227
9226 + 1002 = 10228
9227 + 1002 = 10229
9230 + 1092 = 10322
9231 + 1092 = 10323
9232 + 1092 = 10324
9233 + 1092 = 10325
9234 + 1092 = 10326
9235 + 1092 = 10327
9236 + 1092 = 10328
9237 + 1092 = 10329
9238 + 1082 = 10320
9239 + 1082 = 10321
9330 + 1003 = 10333
9331 + 1003 = 10334
9332 + 1003 = 10335
9333 + 1003 = 10336
9334 + 1003 = 10337
9335 + 1003 = 10338
9336 + 1003 = 10339
9340 + 1093 = 10433
9341 + 1093 = 10434
9342 + 1093 = 10435
9343 + 1093 = 10436
9344 + 1093 = 10437
9345 + 1093 = 10438
9346 + 1093 = 10439
9347 + 1083 = 10430
9348 + 1083 = 10431
9349 + 1083 = 10432
9440 + 1004 = 10444
9441 + 1004 = 10445
9442 + 1004 = 10446
9443 + 1004 = 10447
9444 + 1004 = 10448
9445 + 1004 = 10449
9450 + 1094 = 10544
9451 + 1094 = 10545
9452 + 1094 = 10546
9453 + 1094 = 10547
9454 + 1094 = 10548
9455 + 1094 = 10549
9456 + 1084 = 10540
9457 + 1084 = 10541
9458 + 1084 = 10542
9459 + 1084 = 10543
9550 + 1005 = 10555
9551 + 1005 = 10556
9552 + 1005 = 10557
9553 + 1005 = 10558
9554 + 1005 = 10559
9560 + 1095 = 10655
9561 + 1095 = 10656
9562 + 1095 = 10657
9563 + 1095 = 10658
9564 + 1095 = 10659
9565 + 1085 = 10650
9566 + 1085 = 10651
9567 + 1085 = 10652
9568 + 1085 = 10653
9569 + 1085 = 10654
9660 + 1006 = 10666
9661 + 1006 = 10667
9662 + 1006 = 10668
9663 + 1006 = 10669
9670 + 1096 = 10766
9671 + 1096 = 10767
9672 + 1096 = 10768
9673 + 1096 = 10769
9674 + 1086 = 10760
9675 + 1086 = 10761
9676 + 1086 = 10762
9677 + 1086 = 10763
9678 + 1086 = 10764
9679 + 1086 = 10765
9770 + 1007 = 10777
9771 + 1007 = 10778
9772 + 1007 = 10779
9780 + 1097 = 10877
9781 + 1097 = 10878
9782 + 1097 = 10879
9783 + 1087 = 10870
9784 + 1087 = 10871
9785 + 1087 = 10872
9786 + 1087 = 10873
9787 + 1087 = 10874
9788 + 1087 = 10875
9789 + 1087 = 10876
9880 + 1008 = 10888
9881 + 1008 = 10889
9890 + 1098 = 10988
9891 + 1098 = 10989
9892 + 1088 = 10980
9893 + 1088 = 10981
9894 + 1088 = 10982
9895 + 1088 = 10983
9896 + 1088 = 10984
9897 + 1088 = 10985
9898 + 1088 = 10986
9899 + 1088 = 10987
9900 + 1199 = 11099
9901 + 1189 = 11090
9902 + 1189 = 11091
9903 + 1189 = 11092
9904 + 1189 = 11093
9905 + 1189 = 11094
9906 + 1189 = 11095
9907 + 1189 = 11096
9908 + 1189 = 11097
9909 + 1189 = 11098
9990 + 1009 = 10999

Tablitia 
Beitragsersteller
 16.08.2024, 17:01

Das mit der Liste habe ich nicht gemeint, aber wie hast du es gelöst

0
mihisu  16.08.2024, 17:04
@Tablitia

Ich war da zu faul, um selbst viel Denkarbeit reinzustecken, und habe ein kleines Python-Skript geschrieben, welches alle Möglichkeiten durchgegangen ist und mir die Lösung ausgespuckt hat...

print("SEND + MORE = MONEY")
for S in range(10):
    for E in range(10):
        if E in [S]:
            continue
        for N in range(10):
            if N in [S, E]:
                continue
            for D in range(10):
                if D in [S, E, N]:
                    continue
                for M in range(1, 10):
                    if M in [S, E, N, D]:
                        continue
                    for O in range(10):
                        if O in [S, E, N, D, M]:
                            continue
                        for R in range(10):
                            if R in [S, E, N, D, M, O]:
                                continue
                            for Y in range(10):
                                if Y in [S, E, N, D, M, O, R]:
                                    continue
                                SEND = S*1000+E*100+N*10+D
                                MORE = M*1000+O*100+R*10+E
                                MONEY = M*10000+O*1000+N*100+E*10+Y
                                if SEND + MORE == MONEY:
                                    print(f"{S}{E}{N}{D} + {M}{O}{R}{E} = {M}{O}{N}{E}{Y}")

Output:

SEND + MORE = MONEY
9567 + 1085 = 10652

Und... Ja, ich war auch zu faul, das Python-Skript zu optimieren. Da gäbe es eventuell auch einfachere Möglichkeiten, statt da manuell so viele for-Schleifen und if-Abfragen zu platzieren.

1
Tablitia 
Beitragsersteller
 16.08.2024, 17:05
@mihisu

OK ja, ich persönlich Versuche das mit Logik so lösen, aber ich habe nur S=9, M=1, O=0.

0
mihisu  16.08.2024, 17:10
@Tablitia

Naja. Auch da muss man selbst nicht viel nachdenken, wenn man faul ist, da man andere Leute hat, die das schon durchdacht haben. Da gibt es genügend Leute, die bereitwillig ihren Lösungsweg im Internet veröffentlich haben...

https://www.youtube.com/watch?v=QBdnuNtWj5w

1

Vorgehensweise: M = 1 ist zwingend (Zehnerübergang), dann muss O = 0 sein und damit steht S = 9 fest. Weiterhin kannst Du schlussfolgern, dass N um 1 größer ist als E und N + R (+1) ergibt ebenfalls E ...


Tablitia 
Beitragsersteller
 16.08.2024, 23:22

Das habe ich schon, aber die Antwort ist nicht vollständig

0
gauss58  16.08.2024, 23:55
@Tablitia

Nein, ein bischen soll der Fragesteller auch überlegen. N + R hat einen Zehnerübergang und D + E auch. 9 und 1 sind bereits vergeben. N kann nicht 3 sein, sonst gibt es keinen Zehnerübergang bei D + E und N kann auch nicht 4 sein, sonst würde Y= 1 sein, das geht auch nicht. N kann auch nicht 5 sein, weil R dann 8 wäre und D auch, das geht nicht. N = 6 passt und führt zu keinem Widerspruch. ...

0