Gleichungen

hallo,

jemand hat mir letztens eine aufgabe gestellt die ich nicht ganz verstehe:

Ich soll folgende gleichung in konkrete zahlen ausdrücken und zwar dürfen die platzhalte einen wert von 0 - 9 haben.
das ganze soll als kosolenanwendung schreiben.

hier die gleichungen:

c a b - a d b = c b
....+.........-.......+
... d +...e b = e d
----------------------
c a d - a f b = f d

[Die punkte nicht beachten, sie dienen als leerzeichen]

natürlich könnte man ja ein programm schreiben das alle möglichkeiten durchprobiert aber ich glaube dass das bei den zahlreichen möglichkeiten nicht sinn der sache ist.

thx Lük
 
Ich würde das mit Brute Force lösen - bei anderer herangehensweise müsste man doch viel zu viel nachdenken ;)
aber ich glaube dass das bei den zahlreichen möglichkeiten nicht sinn der sache ist
So viele Möglichkeiten sind es ja nun auch nicht (für Brute Force eher wenig)
Soll das nur dieses eine Rätsel lösen, oder auch andere vergleichbare?
Stell das als Thema ins Code Kitchen und ich würde es sogar mal selbst versuchen.
 
Wenn du nur eine Lösung brauchst, nimm die triviale... alle auf 0 ;)
Wenn du alle haben willst, musst du es wohl ausprobieren...
Es gibt ja sechs Variablen mit den möglichen Werten von 0-9 was 10^6 Möglichkeiten ergibt. Selbszt das ist mit dem PC schnell gelöst... du kannst auch ncoh etwas optimieren...
Code:
cab - adb = cb
 +     -     +
 d  +  eb = ed
--------------
cad - afb = fd

Code:
#include <stdio.h>

int main()
{
	int a,b,c,d,e,f;
	for(d = 0; d < 10; ++d) {
	for(e = 0; e < 10; ++e) {
	for(b = 0; b < 10; ++b) {
	if (d + 10*e + b == 10*e + d) {
	for(a = 0; a < 10; ++a) {
	for(c = 0; c < 10; ++c) {
	if (100*c+10*a+b-100*a-10*d-b == 10*c+b && 100*c+10*a+b+d == 100*c+10*a+d) {
	for(f = 0; f < 10; ++f) {

	if(100*c+10*a+d-100*a-10*f-b == 10*f+d && 100*a+10*d+b-10*e-b == 100*a+10*f+b && 10*c+b+10*e+d == 10*f+d)
		printf("%d%d%d%d%d%d\n", a,b,c,d,e,f);
	}}}}}}}}

	return 0;
}
gibt mir
Code:
abcdef
000000
809909
607918
405927
203936
001945
 
Das ist ein einfaches lineares Gleichungssystem mit 6 Variablen und 6 Gleichungen. Wie man das mit dem Gauß-Algorithmus lösen kann, solltest du in der Schule mal gehabt haben, ansonsten hilft dir die Wikipedia vielleicht auf die Sprünge.

Als Hinweis noch: Die Zahlen mit mehreren Stellen lassen sich auch zusammensetzen. Aus abc kann man a*100 + b*10 + c machen.
 
@ LX : Bist du sicher, dass man das einfach mit dem Gauß-Algorithmus machen kann? Dass es 6 Variablen und 6 Gleichungen stimmt ja, d.h. man kann zu mindest ne Lösung finden. Aber beim Gauss-Algorithmus ist die Form der Gleichungen doch folgende:

a*x + b*y = c ; a,b,c sind Konstanten

Wie machst du es wenn du wie hier Variablen hast die miteinander multipliziert werden?
 
Die Terme müssen ja erst noch aufbereitet werden. Aus der Ursprungsgleichung

c a b - a d b = c b

wird ja dadurch erstmal

100c + 10a + b - 100a - 10d - b = 10c + b

was man dann natürlich weiter vereinfachen kann.
 
Na ich gehe mal davon aus, dass die Variablen in diesem Fall als Ziffern zu verstehen sind, nicht als Multiplikatoren.

abc wäre demnach bei a=7, b=3 und c=9 die Umschreibung für 739 und nicht für 7*3*9. Demnach müssten die Hunderterziffern natürlich mit 100, die Zehnerziffern mit 10 und die Einerziffern mit 1 multipliziert und die drei Teile dann addiert werden, um das in eine mathematisch korrekte Schreibweise zu bringen.
 
Habe aus langeweile in der Schule mal die Gleichung gelöst

A=4
B=0
C=5
D=9
E=2
F=7

540-490=50
9+20=29
549-470=79

Nur falls es jemanden interessiert ^^

Greetz

Christian
 
Zurück
Oben