0 Daumen
185 Aufrufe

Hallo liebe mathelounge Community,


ich habe folgendes Problem.


Aufgabe:

es soll aus einer Matrix (siehe Bild) eine Formel bzw. folgend daraus ein Algorithmus abgeleitet werdem, mit dem sich jeder beliebige Wert der Matrix bestimmen lÀsst.

Konstante: Intervall i=4 (theoretisch funktioniert es mit jedem beliebigen Intervall von 2 bis 128)

Es gibt einen Baum, dessen Knoten in folgender Reihenfolge besucht werden sollen:

FĂŒr jeden Knoten, muss die Schrittnummer ermittelt werden können. Umgekehrt muss aus der Schrittnummer, die Position im Baum ermittel werden können.

Die Matrix ist folgendermaßen aufgebaut:
In der ersten Zeile 0 wird von 0 in ganzen Zahlen aufwÀrts gezÀhlt, wobei nach jedem Intervall (4 Spalten) die nÀchst höhere ganze Zahl in nÀchste Zeile geschrieben wird.
Zu Beginn, benötige ich die 1 in Zeile 1 Spalte 0, um das erste Intervall der Zeile 0 "vervollstÀndigen" zu können.
Immer, wenn ein Intervall in Zeile 0 "voll" ist, wird die nÀchst höhere Zahl in die darunterliegende Zeile ganz links geschrieben, bevor das nÀchste Intervall in Zeile 0 fortgesetzt wird.
Ist das Intervall der darunterliegenden Zeile "voll", wird die nĂ€chst höhere Zahl wiederum in die darunterliegende Zeile geschrieben, danach die nĂ€chst höhere Zahl in die darĂŒberliebende Zeile, bevor ein ganzes Intervall in Zeile 0 geschrieben wird. Dies wiederholt sich, bis man wieder in Zeile 0 weiterzĂ€hlen kann.


Problem/Ansatz:

Es ist mir bereits gelungen, die Formel fĂŒr die Spalte 0 aufzustellen. Die Formel soll jedoch letztendlich alle Werte der Matrix auslesen können und muss daher auch die x Komponente (horizontal) enthalten und daher w[i](x,y)=... lauten.

Hier ist die Formel fĂŒr Spalte 0:

\( w[i](0,y)=\frac{i^y-1}{i-1} \)

Das Intervall i betrĂ€gt in diesem Beispiel wie bereits erwĂ€hnt 4. Wenn ich nun in der obigen Formel fĂŒr die Zeilennummer y die entsprechenden Werte eintage, komme ich genau auf die Werte der Spalte 0 der Matrix. Die Formel ist in Spalte B der Matrix in der Excel Datei bereits eingesetzt.

Mir gelingt es jedoch nicht, die horizontale Dimension x einzubauen, sodass ich jeden beliebigen Wert berechnen kann.

Es wÀre mir sehr geholfen, wenn jemand die Lösung zu diesem Problem findet.

Danke schonmal im Voraus!

LG
feige73e

Hier ist ein Bild der Matrix:

Index_Matrix.JPG

von

1 Antwort

0 Daumen

Erstmal vorne weg. Ich finde es extrem unfair die Frage ĂŒber, inzwischen mind. 4 Matheforen zu verteilen ohne die Prozessbeteiligten zu informieren, sie parallel und aneinander vorbei arbeiten zu lassen: -(

Ich bezweifle auch, dass die Reihe in eine XL-Formel gezwĂ€ngt werden kann. Du hast eine Liste an Ausnahmen(Deine Werte in Spalte 0 und die mod i aussortierten), die im allgemeinen Fall geprĂŒft werden muss bevor die nĂ€chste Position in der Reihe besetzt werden kann. FĂŒr variable i ist das formeltechnisch nicht zu machen (behaupte ich jetzt mal). Die BuchfĂŒhrung wĂ€re evtl. per Makro zu handeln...


Nachtrag:

Adenauer: "Was interessiert mich mein dummes GeschwÀtz von gestern."
Also es geht doch, weil der Tabellenaufbau, so wie es aussieht, abweichend von der Prozessbeschreibung modulo Spaltennummer und Intervalpotenz berechnet werden kann. Beispiel unten im Kommentar...

von 5,6 k

Liebe mathelounge Commnunity,

ich habe bisher keine Erfahrung mit mathe Foren und es war nicht meine Absicht Regeln zu missachten.

Ich habe alle relevanten Antworten in folgendes Forum ĂŒbertragen und von nun an wĂŒrde ich mich freuen wenn wir weiterhin an dem Problem auf in folgendem Thread arbeiten können!

https://matheplanet.com/default3.html?topic=239694=5103

Ich bin sehr dankbar fĂŒr jeden Hinweis der zu einer Lösung fĂŒhren wĂŒrde!

LG

feige73e

Gut, schaun wir weiter...

Ist sicher, dass die Spalte 0 so aussehen muss, wie sie aussieht.

Wie auf dem Matheplanet festgestellt spielt sie ein Sonderrolle.
Kaum hast Du Deinen ZÀhlreim aufgesagt (>von 0 in ganzen Zahlen aufwÀrts gezÀhlt), revidierst Du Dich, um plötzlich die Spalte 0 vorzubelegen.

>wenn ein Intervall in Zeile 0 "voll" ist, wird die nÀchst höhere Zahl in die darunterliegende Zeile ganz links geschrieben

Ja, von wegen, schon im ersten Intervall wird die 5 zwei Zeilen runtergesetzt, auch bei Intervallgrenze 20..24. Es sieht so aus als ob an den Intervallgrenzen Modulo i^zi (Interval i, zi Zeilen 1..12) auch entsprechend viele Zeilen aufgefĂŒllt werden?

Als Beispiel der letzte Tabellenwert 340, der seine Folgewerte auf die Zeile 5..0 verteilt - ist das so richtig?

Hast Du Beispiele fĂŒr andere Intervalle 2,3,5,6 oder so...

blob.png


Wie bereits in OnlineMathe gepostet:

Ich habe einen Ansatz fĂŒr die Lösung gefunden, und zwar hat der Baum den ich konstruiere sogar einen Namen, er wird nach der Regel "depth-first in-order enumeration" gebildet.

https://math.stackexchange.com/questions/1670012/determine-depth-of-node-in-perfect-binary-tree-with-depth-first-in-order-enumera

https://stackoverflow.com/questions/30013591/binary-tree-find-position-in-inorder-traversal

Ich denke, die einzelnen Zellen lassen sich per Formel nicht definieren, sondern nur rekursiv.

Falls jemand dennoch eine Formel findet, lasst es mich bitte wissen :)

Wenn, der Aufbau so laufen soll, wie oben dargestellt, dann hab ich vermutlich eine Lösung, die evtl. sogar variable Intervalle aushÀlt. Sind ein paar Array-Formeln notwendig, weil ich mich mehr am Tabellenaufbau orientiert hab und die mathematischen Betrachtungen etwas aus den Augen verloren habe.

blob.png

Allerdings stĂ¶ĂŸt die Tabelle an der Spaltengrenze an. Sinnvoller wĂ€re ein transponierter Aufbau gewesen?

Hast Du eine Antwort auf meine Fragen oben? KĂŒrzere Antwortintervalle wĂ€ren angebracht - ich muss mich nach Tagen immer wieder neu reindenken - fasst hĂ€tt ich die XL-Tabelle entsorgt...

Auf dem vor Dir angesprochenen Weg (rekursiv oder iterativ) war ich zuerst auch, deshalb der Hinweis das mit Makro zu machen - ich glaub zuviel Mathemaitk behindert die TabKalk-Denke ;-)...

Danke erstmal fĂŒr deine MĂŒhen wĂ€chter und sorry fĂŒr die verzögerte Antwort!

Ja, ich habe eine Antwort auf deine obige Frage:

>Ja, von wegen, schon im ersten Intervall wird die 5 zwei Zeilen runtergesetzt, auch bei Intervallgrenze 20..24. Es sieht so aus als ob an den Intervallgrenzen Modulo izi (Interval i, zi Zeilen 1..12) auch entsprechend viele Zeilen aufgefĂŒllt werden?<

Die 5 in der Spalte 0 kommt daher zu Stande, weil immer, wenn das Intervall der darĂŒberliegenden Zeile "voll" ist, die nĂ€chsthöhere Zahl in eine neue Spalte geschrieben werden muss. Das ist eine Bedingung. Und da das Intervall der Zeile 0 mit der Zahl 4 "voll" ist, und in Zeile 1 bereits eine Zahl steht, muss die 5 in Zeile 2.

Selbiges gilt fĂŒr Intervallgrenze 20.

In welche Richtung geht deine Lösung?

Naja, streiten wir nicht ĂŒber Formulierungen - hab auf jeden Fall was anderes verstanden als Du gemeint hast.

Ich hab jetzt zwei TabellenauszĂŒge reingestellt - ach, ich probier mal, ob noch auf Diene Onedrive Tabelle zugreifen und kopier einen gĂ¶ĂŸeren Auszug rein.
Kannst Du die mal ĂŒberprĂŒfen und sagen ob taugen oder nicht?

Hast du deine LösungsvorschlÀge in die Datei geschrieben?

Ich sehe keine neuen TabellenauszĂŒge...

Den Link kann ich hier leider nicht posten, da er blockiert wird.

Er ist jedoch im MathOnline Forum gleich im zweiten Post zu finden

https://www.onlinemathe.de/forum/Formel-bzw-Algorithmus-aus-Matrix-ableiten

Sagen Dir die Bilder der Tabellen hier nix?

Und, ja, ich hab ein Blatt Tabelle2 (ca. 512 Spalten) im OneDrive angelegt und dort einen Auszug hinterlegt - OneDrive sagt allerdings Upload ausstehend. Schau mal ob das jetzt doch rausgegangen ist? Letzte Update Meldung 16:17...

Doch, danke fĂŒr den Hinweis, die Zahlen sehen gut aus! :D

Die xls Datei hat sich nun auch aktualiusiert.

Wie hast du die Zelleninhalte letztendlich zustandegebracht?

Ajee, ich hab bei den vielen Diskussionsfaden letztgenannten verloren...

Soll ich meine Formeln noch kopierfertig machen, oder hast Du eine Lösung?

>Allerdings stĂ¶ĂŸt die Tabelle an der Spaltengrenze an. Sinnvoller wĂ€re ein transponierter Aufbau gewesen?

DarĂŒber wĂŒrde ich mich sehr freuen, dann könnte ich von deinen Formeln versuchen weiterzurechnen :)

Danke nochmal!

Meine Formeln

Namen
ZNR=Tabelle1!$A$7:$A$18
Spalte0=Tabelle1!$C$6:$C$18
Zeile0=Tabelle1!$C$6:$NB$6

Spalte D ( kopierfertig ĂŒber alle SpaltenZeilen)
D6:{=SUMME(C6;1;1*(REST(SPALTE()-3;i^(ZNR))=0);1*((C6+1)=Spalte0))}
D7:=INDEX(Zeile0;(SPALTE()-3)*i+1)-(ZEILE()-6)
D8:=INDEX(Zeile0;(SPALTE()-3)*i^(ZEILE()-6)+1)-(ZEILE()-6)
D9:=INDEX(Zeile0;(SPALTE()-3)*i^(ZEILE()-6)+1)-(ZEILE()-6)
D10:=INDEX(Zeile0;(SPALTE()-3)*i^(ZEILE()-6)+1)-(ZEILE()-6)
D11:=INDEX(Zeile0;(SPALTE()-3)*i^(ZEILE()-6)+1)-(ZEILE()-6)

Knoten by Zeilen/Spalten-Index
Index Zeile Spalte "Wert des Knoten" "Zeile0 Spalte"
0 idx0 {=SUMME(idx0+1;GANZZAHL(idx0/i^ZNR);GANZZAHL(LOG(idx0;i)))}
idy idx {=SUMME(idxy0;GANZZAHL(idxy0/i^ZNR);GANZZAHL(LOG(idxy0;i)))-idy} idxy0=idx*i^idy+1

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
0 Antworten
0 Daumen
0 Antworten
Gefragt 31 Okt 2014 von Gast
0 Daumen
1 Antwort

Willkommen bei der Mathelounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...