0 Daumen
1k 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.

!

LG
feige73e

Hier ist ein Bild der Matrix:

Index_Matrix.JPG

Avatar 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 eventuell 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...

Avatar von 21 k

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


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 eventuell 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?

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

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community