Mathematische Operationen einer Gleichung finden
#1
Guten Abend zusammen,

ich bin gerade auf eine Idee gekommen, die mich jetzt gepackt hat - ich sie aber nicht lösen kann :D
Angenommen ich habe eine Gleichung mit 2 bis 5 Zahlen und einem gegebenem Ergebnis, wobei allerdings die vier Grundrechenoperationen (plus minus mal geteilt) zwischen den Zahlen fehlen.
Also bspw.: 2 _ 3 _ 4 _ 5 = 19
Lösung: 2 + 3 * 4 +5 = 19

Habt ihr adhoc eine Idee, wie man dies mit einer Formel oder besser mit VBA lösen könnte?
Ich dachte da entweder an eine komplette Eingabeabfrage von wegen "Wie viele Zahlen?" "Zahlen angeben" "Ergebnis angeben!"
Oder an 4 Zeilen, in denen man die Zahlen einträgt (je nachdem, wieviele Zahlen gegeben sind):

1: Zahl1 _ Zahl2 = Erg
2: Zahl1 _ Zahl2 _ Zahl3 = Erg
3: Zahl1 _ Zahl2 _ Zahl3 _ Zahl4 = Erg
4: Zahl1 _ Zahl2 _ Zahl3 _ Zahl 4 _ Zahl 5 = Erg  , wobei _ eine gesuchte Rechenoperation

hinzukommend wüsste ich zB. auch nicht wie man die Rechenregel Punkt-vor-Strich berücksichtigen könnte?

Ich wäre euch sehr dankbar, falls ihr mir da weiterhelfen könntet!

Beste Grüße,
Herbert
Top
#2
(14.11.2016, 22:26)xlsxvba schrieb: Also bspw.: 2 _ 3 _ 4 _ 5 = 25
Lösung: 2 + 3 * 4 +5 = 25

Hallo Herbert,

2+3*4+5=19 und nicht 25
richtig wäre: 2+3+4*5

Außerdem gibt es teilweise mehr als eine Lösung
z.B ergibt auch
2-3+4*5 auch 19
Gruß Conny :)
_______________________________________________________________

Die Summe der Intelligenz auf unserem Planeten ist konstant, aber die Bevölkerung wächst!
Top
#3
Hallo Conny,

na da geht's ja schon direkt los :D
Habe erst noch groß von Punkt vor Strich geschrieben und dann das. (Hatte erst überall "+" stehen und dachte das ist zu einfach und habe das Ergebnis nicht angepasst :21:   )
Also du hast natürlich Recht:

Also bspw.: 2 _ 3 _ 4 _ 5 = 19
Lösung 1: 2 + 3 * 4 +5 = 19     UND in diesem Fall     Lösung 2: 2 - 3 + 4 * 5 = 19

Dann müsste das auch berücksichtigt werden.
Eine Idee zu Berechnung hast du aber nicht zufällig?

VG
Top
#4
Hallo,

die einzige Idee, die mir einfällt, ist "brut force", wie hacker das sagen würden. Einfach alle Möglichkeiten ausprobieren.

mfg
Top
#5
Hallo,

so in die Richtung geht es bestimmt.
Fängt man mit 2 Zahlen an, gibt es 4 Möglichkeiten: +-*/
Sind es 3 Zahlen, gibt es 4 x 4  = 16 Möglichkeiten, oder?
++,+-,+*,+/
-+,--,-*,-/
*+,*-,**,*/
/+,/-,/*,//

müssten man das irgendwie in eine Schleife verpacken, die das durchgeht?
Schwieriger wird es bestimmt bei 5 oder 6 Zahlen und Punktrechnung muss priorisiert werden.

Ideas welcome :)

Danke & VG
Top
#6
Hallo,

nicht so ganz: da es vier Grundrecharten gibt, ergeben 2 Zahlen 4 Möglichkeiten, 3 Zahlen 16 usw.

Programmiert werden könnte das mit


Code:
GR = Array("+", "-", "*", "/")


und die Formel zuerst als String zusammensetzen und dann mit "Evaluate" auswerten.

mfg
Top
#7
Hallo,

bis zu wie viele Zahlen brauchst du das denn ? Gibt es eine maximale Anzahl ?
Top
#8
Hallo,

hier eine umständliche Zwischenlösung, aber vielleicht kann man ja darauf aufbauen :)


.xlsx   Rechenoptionen.xlsx (Größe: 12,54 KB / Downloads: 5)
[-] Folgende(r) 1 Nutzer sagt Danke an Luffy für diesen Beitrag:
  • xlsxvba
Top
#9
Hallo,

dann würde ich doch eher das vorschlagen:



.xlsm   Rechenoptionen.xlsm (Größe: 13,67 KB / Downloads: 8)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • xlsxvba
Top
#10
Moin zusammen,

Danke für eure starken Ideen und Lösungen!
Insbesondere Danke an BoskoBiati!!

Ich bin ein bisschen platt :D wie kannst du mal eben schnell sowas bauen?? Respekt!!
Ich muss erstmal einen Tag frei nehmen, um deine Formeln zu verstehen ;)
Die Datei ist ja eine xlsm nur enthält sie keine Makros bei mir? Die Funktion "rechne" ist mit =AUSWERTEN(Tabelle1!$C4) hinterlegt ... die Formel "Auswerten" gibt es bei mir aber nicht. Könntest du mir noch kurz erklären wie das genau funktioniert?

Also besten Dank nochmal bis hierhin!

// PS @ Luffy: 5 Zahlen sind schon top. Luxus wäre natürlich variabel
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste