Ein Rätsel (das man rekursiv lösen kann?)

VanHellsehn

Erfahrenes Mitglied
Hi,
Ich habe seit einigen Tagen ein Rätsel in C.
Und war soll ich z.B. diese Gleichungen lösen:

Code:
(x[0]*1000+x[1]*100+x[2]*10+x[3]) /
		(x[4]*10+x[5]) ==
		(x[4]*100+x[6]*10+x[3])
		&&
		(x[7]*1000+x[8]*100+x[9]*10+x[4]) -
		(x[7]*1000+x[8]*100+x[1]*10+x[6])==
		(x[5]*10+x[4])
		&&
		(x[9]*1000+x[8]*100+x[3]*10+x[1]) -
		(x[7]*1000+x[8]*100+x[3]*10+x[5]) ==
		(x[2]*1000+x[6]*100+x[6]*10+x[2])
		&&
		(x[0]*1000+x[1]*100+x[2]*10+x[3]) -
		(x[7]*1000+x[8]*100+x[9]*10+x[4]) ==
		(x[9]*1000+x[8]*100+x[3]*10+x[1])
		&&
		(x[4]*10+x[5]) +
		(x[7]*1000+x[8]*100+x[1]*10+x[6]) ==
		(x[7]*1000+x[8]*100+x[3]*10+x[5])
		&&
		(x[4]*100+x[6]*10+x[3]) *
		(x[5]*10+x[4]) == 
		(x[2]*1000+x[6]*100+x[6]*10+x[2])

Wobei jeder jede Vaiable für eine Zahl stehen darf! D.h. wenn x[0] = 0 darf keine andere Variable den Wert 0 haben.

Als Tipp steht noch das man es mit Selektion und Interation gelöst werden kann.

Doch bisher fehlt mir der ansatz wie ich die Variablen mit Werten füllen soll.

Kann mir da einer helfen?


MfG,
Marvvvv =)
 
das Problem ist ich möchte Später auch die werte für die einzelnen Variablen haben und so wie ich das verstanden habe "prüft" man mit Brutforce immer ein wert nach dem anderen das heißt 1, 2, 3.. a, b ,c.. 01, 02, 03.. a3, a4, a5...
 
Auszug aus Wiki: Lösungsmethode für Probleme aus den Bereichen Informatik, Kryptologie und Spieltheorie, die auf dem Ausprobieren aller (oder zumindest vieler) möglicher Fälle beruht
 
Mal eine grundlegene Frage: Sind die Unbekannten wenigstens ganze Zahlen?
Hi,
Ja das sind 10 Variablen das heißt 0-9 und jede Variable hat einen aderen Wert d.h. es darf z.B. die 1 nur in einer variable vorkommen.

Das Rätsel sah voher so aus (zwar mit Symbolen anstatt Zeichen aber naja):

Code:
a b c d  :    e f    =  e g d
   -           +          *
h i j e  -  h i b g  =   f e
   =           =          =
j i d b  -  h i d f  = c g g c

Eventuell zeigt euch das was ich vor mir haben =)
Vobei da oben ein Buchstabe natürlich auch nur ein Wert sein darf.
Summen ergeben sie eine Zahl.
D.h. wenn man a = 1, b = 2, c = 3, d = 4 hat heißt die erste Zahl 1234 ;)

Hallo,

wenn ich das richtig verstanden habe, dann könnte man hier einfach alle Permutationen der Ziffern 0-9 durchprobieren. Die englische Wikipedia liefert dazu auch einige hilfreiche Algorithmen.

Grüße,
Matthias

Der ansatz ist super doch komme ich nicht ganz damit klar..
 
Zuletzt bearbeitet:
Zurück