myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Symbolrätsel [JAVA] ?

Willkommen

myGully

Links

Forum

 
Antwort
 
Themen-Optionen Ansicht
Ungelesen 19.11.10, 20:40   #1
fener1907
Anfänger
 
Registriert seit: Aug 2009
Beiträge: 13
Bedankt: 1
fener1907 ist noch neu hier! | 0 Respekt Punkte
Standard Symbolrätsel [JAVA] ?

Hallo Freunde, ich hab hier eine Aufgabe die ich lösen muss, aber ich weiß nicht wie ich anfangen soll. Es muss in Java sein und ich brauch keine kompletten Lösungen, Ansätze für den anfang und weiter wären sehr hilfreich, damit ich selber was lerne und weiß wie man zur lösung anderer solcher Aufgaben kommen kann.


Hier die Aufgabe:


Symbolrätsel sind Puzzle, bei denen die Buchstaben Ziffern zwischen 0 und 9
repräsentieren.
Beispiel:

I S E N D
+ B B + M O R E
----- ---------
I L L M O N E Y


Im ersten müssen zur Lösung die Buchstaben folgendermaßen ersetzt werden: I =
1, B = 9 und L = 0:

1
+ 9 9
-----
1 0 0

# Bei der Lösung dieser Rätsel sind folgende Punkte zu beachten: Es ist nicht
zulässig, dass zwei verschiedene Buchstaben für die gleiche Zahl stehen.
# Die Lösung muss nicht eindeutig sein, es kann mehrere Lösungen geben.
# Die führende Ziffer kann nicht die Null sein (z.B. ist 0322 nicht erlaubt).

Schreiben Sie ein Programm, das das folgende Symbolrätsel löst, indem alle
Ziffernkombinationen durchprobiert und alle gültigen Kombinationen ausgegeben
werden. Nummerieren Sie ihre Lösungen durch und geben Sie für jede die oben
dargestellte Ziffernnotation aus.

H E S
+ T H E
-------
B E S T
fener1907 ist offline   Mit Zitat antworten
Ungelesen 19.11.10, 22:22   #2
Jester2
Newbie
 
Registriert seit: Aug 2010
Beiträge: 85
Bedankt: 30
Jester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt PunkteJester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt PunkteJester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt PunkteJester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt PunkteJester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt PunkteJester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt PunkteJester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt PunkteJester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt PunkteJester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt PunkteJester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt PunkteJester2 putzt sich die Zähne mit Knoblauch. | 2683 Respekt Punkte
Standard

Dann werde ich dir mal einen Ansatz geben, damit du anfangen kannst.

In dem unteren Beispiel hast du insgesamt 5 Buchstaben mit unterschiedlichen Zahlen, also H,E,S,T und B. Wir erkennen, dass wir 2 Operanden > 100 addieren (weil 3 Buchstaben) und als Ergebnis irgendwas > 1000 rauskommen muss (weil 4 Buchstaben).
Dazu den Hinweis:

Code:
        int operand1 = (H * 100) + (E * 10) + S;
        int operand2 = (T * 100) + (H * 10) + E;
        int result = operand1 + operand2;
        int expectedResult = (B * 1000) + (E * 100) + (S * 10) + T;
Nun musst du den Buchstaben Initialwerte zuweisen. Dabei ist zu beachten, dass keine führende Null erlaubt ist. Ergo dürfen H und B niemals 0 werden, was im Umkehrschluss bedeutet sie können nur die Werte 1-9 annehmen. Außerdem dürfen unterschiedliche Buchstaben nicht dieselbe Zahl annehmen.

Noch ein letzter Hinweis. B kann dir egal sein, so lange es != H, E, S oder T ist.

Jetzt bist du dran. Viel Spaß

Gruß
Jester
Jester2 ist offline   Mit Zitat antworten
Ungelesen 19.11.10, 23:22   #3
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Lösen lässt sich das mit einem lineare Gleichungssystem.
Nur zur Info falls ihr von der Aufgabenstellung abweichen dürft.
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 24.11.10, 00:34   #4
wmosebach
Ist öfter hier
 
Registriert seit: Jan 2010
Beiträge: 189
Bedankt: 117
wmosebach ist noch neu hier! | 0 Respekt Punkte
Standard

Lösungsansatz könnte auch radikales Bruteforcen sein.
Du lässt alle möglichkeiten durchlaufen und schaust welche funktionieren.

Anforderung sagt er, es kann mehrere Lösungen geben, dann würde dieser Ansatz auf jeden Fall funktionieren.
__________________
Make the world a prettier place - get a bikini wax!
wmosebach ist offline   Mit Zitat antworten
Ungelesen 24.11.10, 12:04   #5
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von wmosebach Beitrag anzeigen
Lösungsansatz könnte auch radikales Bruteforcen sein.
Du lässt alle möglichkeiten durchlaufen und schaust welche funktionieren.

Anforderung sagt er, es kann mehrere Lösungen geben, dann würde dieser Ansatz auf jeden Fall funktionieren.
Genau DAS steht ja in der Aufgabenstellung!

Es gibt mehrere Lösungen (=Ergebnisse), aber es soll nur ein Lösungsweg umgesetzt werden!

Brute-Force ist auch kein "Ansatz" und funktioniert in solchen Fällen ("durchprobieren") immer! Wann kann Brute-Force denn nicht funktionieren?

Zitat:
Zitat von fener1907 Beitrag anzeigen
Schreiben Sie ein Programm, das das folgende Symbolrätsel löst, indem alle Ziffernkombinationen durchprobiert und alle gültigen Kombinationen ausgegeben werden.
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 27.11.10, 00:42   #6
wmosebach
Ist öfter hier
 
Registriert seit: Jan 2010
Beiträge: 189
Bedankt: 117
wmosebach ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von PornoPenner Beitrag anzeigen
Wann kann Brute-Force denn nicht funktionieren?
Gehen wir einmal davon aus, dass der wir einen Text entschlüsseln wollen, dessen Schlüssel genausolang ist wie der Text ansich.
Findet der Brute-Forcer nun einen gültigen text so kann der Angreifer noch nicht sicher sein, ob es sich denn wirklich um den richtigen handelt.
__________________
Make the world a prettier place - get a bikini wax!
wmosebach ist offline   Mit Zitat antworten
Ungelesen 27.11.10, 11:05   #7
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von wmosebach Beitrag anzeigen
Gehen wir einmal davon aus, dass der wir einen Text entschlüsseln wollen, dessen Schlüssel genausolang ist wie der Text ansich.
Findet der Brute-Forcer nun einen gültigen text so kann der Angreifer noch nicht sicher sein, ob es sich denn wirklich um den richtigen handelt.
Und warum sollte Brute-Force hier bitte nicht funktionieren?
Auch hier wird mittels Brute-Force die richtige Lösung gefunden (welche eine von vielen ist).

Und ich denke in dieser Aufgabe geht es auch um Brute-Forcen, da der einfache und schnellere mathematische Ansatz ja nicht erwähnt wurde.
Ebenso werden hier alle möglichen Lösungen gefunden, welche die richtige ist, kann hier aber auch nicht entschieden werden!
PornoPenner ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 Uhr.


Sitemap

().