![]() |
datenvergleich: kleinste gemeinsamkeit
Hi,
ich habe in 4 arrays daten (nur ganzzahlen). nun möchte ich 3 dieser arrays vergleichen, und zwar rausfinden, welche am wenigsten zahlen aus dem 4. array gemeinsam haben. wie macht man das am dümmsten? eine umwandlung der daten in andere formate sollte auch kein problem sein, ich brauche nur irgendeinen lösungsweg... *MFG* |
Re: datenvergleich: kleinste gemeinsamkeit
Naja, ich würde das so lösen:
Du brauchts 3 Variablen (Zahlen), z.B. matches1, matches2, matches3. Dann durchläufst du über drei for-Schleifen die 3 Arrays und fragst für jedes Element ab, ob es im 4. Array drinnen ist, wenn ja, dann zählst du zu matches1 bzw. matches2/3 eins dazu. Am Schluss schaust du welches der 3 Zahlen die kleinste ist und weißt dann wo's die wenigsten Übereinstimmungen gibt. 8) Hoffe es ist dir hilfreich :-D LG |
Re: datenvergleich: kleinste gemeinsamkeit
gut, das dachte ich auch, nur dass es auch 5 oder 6 oder 100 arrays sein können, die verglichen werden müssen. hätt ich vielleiht gleich sagen sollen... was dann? sprich die anzahl der arrays ist variable, nicht vorhersehbar!
|
Re: datenvergleich: kleinste gemeinsamkeit
naja, wenn es komponenten wären, z.b. bilder (abgesehen davon, dass bilder nicht als arrays anzusprechen sind :oops: ), dann wäre es auch nicht so schwer. :mrgreen:
statt den 3 for-schleifen folgender code:
Delphi-Quellcode:
sollte funzzen
for i := 0 to anzahlarrays do begin
element := TImage(FindComponent('bild' + inttostr(i))); for j := 0 to Length(element) do begin ... end; end; wie das dann mit arrays geht :?: :?: no ahnung, vielleicht nur findcomponent? LG :-D |
Re: datenvergleich: kleinste gemeinsamkeit
hab ne lösung, dass ich da nicht gleich drauf gekommen bin :wall: :
hab ein zusätzlichers array das so lang ist wie die anzahl der zu vergleichenden arrays und in dem für jedes array einen counter... *MFG* |
Re: datenvergleich: kleinste gemeinsamkeit
Zitat:
Der Vergleich 2er Arrays liefert eine Zahl mit Anzahl der Übereinstimmung (ich nenns mal Alpha). Jetzt brauchst du dir nur noch das Minimum an Übereinstimmung und den Index des dazugehörenden Arrays zu merken.
Delphi-Quellcode:
minimum_arrayindex := 0;
minimum_alpha := maxInt; for i := 0 to anzahlarrays do begin alpha := Vergleiche(masterarray, array[i]); if alpha < minimum_alpha then begin minimum_alpha := alpha; minimum_arrayindex := i; end ; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz