Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » mathematische Formel zu Arraypositionenberechnung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen mathematische Formel zu Arraypositionenberechnung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
NikoB
unregistriert
mathematische Formel zu Arraypositionenberechnung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.
30.04.2018 08:28
as_string as_string ist männlich
Routinier


Dabei seit: 06.11.2013
Beiträge: 447
Herkunft: Heidelberg

RE: mathematische Formel zu Arraypositionenberechnung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.
30.04.2018 09:45 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
NikoB
unregistriert
re: mathematische Formel zu Arraypositionenberechnung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
30.04.2018 13:04
as_string as_string ist männlich
Routinier


Dabei seit: 06.11.2013
Beiträge: 447
Herkunft: Heidelberg

RE: mathematische Formel zu Arraypositionenberechnung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
01.05.2018 11:41 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » mathematische Formel zu Arraypositionenberechnung