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
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.
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 ...
Das habe ich schon, aber die Antwort ist nicht vollständig
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. ...
Das mit der Liste habe ich nicht gemeint, aber wie hast du es gelöst