![]() |
Zahlendreiecke mit Delphi lösen?
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Alle!
Ich brauche mal Hilfe von einem Mathe- Ass. Ich habe hier ein Zahlendreieck. Die äußeren Zahlen sind bekannt. Die inneren Zahlen müssen errechnet werden. Ich suche ein Lösungsweg in Delphi. Im Moment komme ich nicht weiter. Ich habe mal angehangen was ich bisher versucht habe. Gruß Klaus |
Re: Zahlendreiecke mit Delphi lösen?
Und nach welchen Regeln müssen die errechnet werden?
|
Re: Zahlendreiecke mit Delphi lösen?
Sorry, hatte vergessen hinzuschreiben. Die Äußeren Zahlen sind die Ergebnisse. Gerechnet werden muss mit plus und minus.
Gruß Klaus |
Re: Zahlendreiecke mit Delphi lösen?
Zitat:
|
Re: Zahlendreiecke mit Delphi lösen?
Das ist lustig, mir wurde gestern erst so eine Aufgabe vorgelegt - der Enkel meiner Nachbarn musste so ein Zahlendreieck in der zweiten Klasse in einer Klassenarbeit lösen :?
B+D muss A ergeben, B+E muss C ergeben, D+E muss F ergeben. Es gibt da übrigens nur eine Lösung. Wie wäre es mit Bruteforce? ;) Ich habe bisher keine Formeln gefunden, das zu lösen. Durch geschicktes rumschubsen geht das aber zum Teil mit Logik. Mit Bruteforce war es in 0 ms zu lösen, da die Zahlen nicht sonderlich groß sind (ungenau, da GetTickCount).
Code:
int main() {
DWORD t = GetTickCount(); for(int b = 1; b < 45; b++) for(int d = 1; d < 33; d++) for(int e = 1; e < 33; e++) if(b+d==50 && b+e==45 && d+e==33) cout << b << ' ' << d << ' ' << e << endl; t = GetTickCount() - t; cout << t << endl; system("PAUSE"); return EXIT_SUCCESS; } |
Re: Zahlendreiecke mit Delphi lösen?
Zitat:
Gruß Klaus |
Re: Zahlendreiecke mit Delphi lösen?
Du weißt folgendes:
50=b+d 45=b+e 33=d+e Dann löst du einfach nach einer Variablen auf: b=50-d e=45-b d=33-e Und dann setzt du einfach zB. in den dritten Term ein: d=33-(45-(50-d)) ...auflösen ergibt: d=33-(45-50+d) d=33-45+50-d d=38-d 2d=38 d=19 Dann kannst du einfach in die oberen Terme einsetzen :cheers: Um das ganze in Delphi umzusetzen musst du natürlich anstatt die Zahlen dann den Inhalt der Edit-Felder einsetzen :zwinker: Gruß, Elko |
Re: Zahlendreiecke mit Delphi lösen?
Zitat:
wie kommst Du jetzt auf 38 und 19? Gruß Klaus |
Re: Zahlendreiecke mit Delphi lösen?
Zitat:
Gruß Klaus |
Re: Zahlendreiecke mit Delphi lösen?
Eigentlich ganz einfach, falls dir der Begriff "Äquivalenz-Umformungen" aus der Schule noch was sagt:
Subtrahierst du auf beiden Seiten der Gleichung einen Wert, dann ändert das nichts am Ergebnis, wie du im folgenden auch siehst: 5 = 5 //jetzt machst du auf beiden Seiten z.B. -2 3 = 3 Das ganze geht natürlich auch mit * / + - usw. uuuuuuund mit Variablen (da macht es ja auch erst Sinn :mrgreen: ) x = 5 //hier weißt du sofort, dass x fünf ist Wenn du aber z.B. sowas hast: x+2 = 9 //na, jetzt rate mal, was da raus kommt... du machst auf beiden Seiten -2 und dann kommt auf der linken Seite "X" raus und auf der rechten "7", also x=7 So, jetzt zu meinem Post zuvor: d=33-(45-50+d) d=33-45+50-d // hier fasst du einfach nur 33-(45-50+d) zusammen d=38-d // jetzt, machst du auf beiden Seiten +d, damit du auf der rechten Seite nur noch eine Zahl stehen hast 2d=38 //jetzt teilst du beide Seiten durch 2, damit aus den 2d's eines wird und du das Ergebnis für d rausbekommst. d=19 //das ist das Ergebnis für d, das du jetzt einfach in die Terme, die ich davor aufgestellt habe, einsetzen kannst... Hoffe, dass es jetzt verständlich ist :thumb: Gruß, Elko |
Re: Zahlendreiecke mit Delphi lösen?
Es ist C++ Code, den muss man erst übersetzen. Die Lösung von Elko ist allerdings schöner und schneller ;)
|
Re: Zahlendreiecke mit Delphi lösen?
|
Re: Zahlendreiecke mit Delphi lösen?
Vielen Dank Elko, jetzt habe ich es geschnallt.
Gruß Klaus |
Re: Zahlendreiecke mit Delphi lösen?
Also, so ganz scheint die Lösung von Elko nicht zu klappen. Sobald man die Zahlen wechselt, also neue Zahlen außen verwendet, klappt es nicht.
Ich habe mir inzwischen mal folgendes überlegt. Die Summe der Zahlen in dem Dreieck muss die Hälfte der äußeren Zahlen ergeben, weil jede innere Zahl jeweils zweimal mit einer anderen inneren Zahl zusammengerechnet wird. Aber so ganz bringt mich dieser Lösungsweg auch nicht weiter. Gruß Klaus |
Re: Zahlendreiecke mit Delphi lösen?
Die lösen in der Grundschule schon Gleichungssystem mit drei Unbekannten? :shock:
Nun ja, zum Gauss'schen Lösungsverfahren sollte sich Code finden lassen. |
Re: Zahlendreiecke mit Delphi lösen?
Zitat:
Ich schaue mal nach. Danke für den Tipp. Gruß Klaus |
Re: Zahlendreiecke mit Delphi lösen?
Zitat:
Zitat:
Das Gauß-Verfahren wird dir hier wenig nützen, da die Form des LGS doch immer gleich ist. Elkos Weg ist der richtige. |
Re: Zahlendreiecke mit Delphi lösen?
I b=50-d
II e=45-b III d=33-e Wenn du das allgemein machst, kommt folgendes raus: d=f-(c-(a-d)) d=f-(c-a+d) d=f-c+a-d |+d 2d=f-c+a |/2 d=(f-c+a)/2 Einsetzen von d in I: b=a-(f-c+a)/2 b=(a+c-f)/2 Einsetzen von b in III: e=c-(a+c-f)/2 e=(c-a+f)/2 ----------- Ich hoffe, ich habe mich nicht vertippt, aber an sich müsste das funktionieren. Wie schon gesagt wurde: Ist Mathematik und muss eigentlich funzen :wink: Gruß, Elko |
Re: Zahlendreiecke mit Delphi lösen?
Vielen Dank an Alle.
Ich habe jetzt doch einen einfacheren Weg gefunden.
Delphi-Quellcode:
Gruß
Summeaussen := A + C + F;
Summeinnen := Summeaussen div 2; B := Summeinnen - F; D := A - B; E := F - D; Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz