mathematische Formel zu Arraypositionenberechnung

Neue Frage »

Auf diesen Beitrag antworten »
NikoB 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:
Positiongroßes Grinsen 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.
 
Auf diesen Beitrag antworten »
as_string 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:
[latex]x=((p-1) \,\mathrm{mod}\,3)+1[/latex]
[latex]y=((p-1) \,\mathrm{div}\,3)+1[/latex]
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.
Auf diesen Beitrag antworten »
NikoB 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. Daumen hoch
Auf diesen Beitrag antworten »
as_string RE: mathematische Formel zu Arraypositionenberechnung

Nochmal:
Wenn posi von 1 bis 16 läuft, dann ist
[latex](posi-1) mod 16 = posi-1[/latex]
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
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »