mathematische Formel zu Arraypositionenberechnung |
NikoB unregistriert
|
|
mathematische Formel zu Arraypositionenberechnung |
|
Hallo zusammen,
ich suche nach einer passenden mathematischen Formel zu folgender Frage.
Ich habe ein Array, welches nach folgendem Muster aufgebaut ist:
Position
aten
1:1/1
2:2/1
3:3/1
4:1/2
5:2/2
6:3/2
7:1/3
8:2/3
9:3/3
Die beiden Zahlen in Daten seien hier der Einfachheit halber mit x und y beschrieben. Über folgende Formel bekomme ich den y Wert:
y = (position - modulo(position,9))/9+1;
Wie erhalte ich x?
Folgende Formel bringt nicht das gewünschte Ergebnis:
x = position - (y-1)*9;
Danke für Vorschläge.
|
|
30.04.2018 08:28 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
RE: mathematische Formel zu Arraypositionenberechnung |
|
Zitat: |
Original von NikoB
Ich habe ein Array, welches nach folgendem Muster aufgebaut ist: |
Du hast ein Beispiel gegeben, dadurch wird aber nicht klar, wie es bei anderen Arraygrößen sein soll. Z. B. frage ich mich, ob es immer quadratisch sein soll, also es insgesamt immer 3-mal-3 oder 4-mal-4 oder 5-mal-5, etc sein soll?
Zitat: |
Original von NikoB
Die beiden Zahlen in Daten seien hier der Einfachheit halber mit x und y beschrieben. |
und welcher der beiden ist x und welche y?
Zitat: |
Original von NikoB
Über folgende Formel bekomme ich den y Wert:
y = (position - modulo(position,9))/9+1; |
Das kann weder für den Wert vor noch hinter dem Querstrich stimmen.
Erstmal ist doof, das nicht alles nullbasierend ist, so muss man nur ständig eine 1 addieren oder subtrahieren. Wenn x die Zahl vor dem Querstrich sein soll, dann schlage ich vor:
wobei div die Ganzzahldivision sein soll.
Wie gesagt, wenn man alles 0-basiert machen würde, wären die Formeln einfacher, nur jeweils mod 3 div 3 ohne irgendwelche plus- oder minus-1.
Gruß
Marco
PS: die 3 ergibt sich einfach als Wurzel von 9, also der Arraygröße. Wenn nicht nur Quadratzahlen als Arraygröße erlaubt sind, dann musst Du wahrscheinlich die Wurzel aufrunde, aber dazu hast Du nicht genug Beschreibung geliefert und rumraten bringt nichts.
|
|
30.04.2018 09:45 |
|
|
NikoB unregistriert
|
|
re: mathematische Formel zu Arraypositionenberechnung |
|
Hi Marco,
Es ist korrekt, was du angenommen hast. Mein Zielarray hat eine Größe von 256 und ist damit die Potenz von 16.
Meine Berechnung von y war mist, die habe ich nun angepasst auf:
(position - (mod(posi - 1,16)+1))/16+1
Deine Berechnung von x passt genau. Vielen Dank dafür.
|
|
30.04.2018 13:04 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
RE: mathematische Formel zu Arraypositionenberechnung |
|
Nochmal:
Wenn posi von 1 bis 16 läuft, dann ist
für alle posi im Definitionsbereich.
Dir bringt also das mod gar nichts und für y brauchst Du auch kein mod sondern eine Ganzzahldivision.
Was hälst Du von meiner kurzen Formel für y, die ist doch recht einfach und direkt.
Gruß
Marco
|
|
01.05.2018 11:41 |
|
|
|