AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

datenvergleich: kleinste gemeinsamkeit

Ein Thema von Meflin · begonnen am 3. Okt 2004 · letzter Beitrag vom 4. Okt 2004
Antwort Antwort
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#1

datenvergleich: kleinste gemeinsamkeit

  Alt 3. Okt 2004, 13:53
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*
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#2

Re: datenvergleich: kleinste gemeinsamkeit

  Alt 3. Okt 2004, 14:07
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

LG
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: datenvergleich: kleinste gemeinsamkeit

  Alt 3. Okt 2004, 18:27
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!
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#4

Re: datenvergleich: kleinste gemeinsamkeit

  Alt 3. Okt 2004, 19:24
naja, wenn es komponenten wären, z.b. bilder (abgesehen davon, dass bilder nicht als arrays anzusprechen sind ), dann wäre es auch nicht so schwer.
statt den 3 for-schleifen folgender code:
Delphi-Quellcode:
for i := 0 to anzahlarrays do begin
   element := TImage(FindComponent('bild' + inttostr(i)));
   for j := 0 to Length(element) do begin
      ...
   end;
end;
sollte funzzen

wie das dann mit arrays geht no ahnung, vielleicht nur findcomponent?

LG
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#5

Re: datenvergleich: kleinste gemeinsamkeit

  Alt 4. Okt 2004, 15:01
hab ne lösung, dass ich da nicht gleich drauf gekommen bin :
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*
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: datenvergleich: kleinste gemeinsamkeit

  Alt 4. Okt 2004, 15:38
Zitat von Meflin:
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...
Oder noch sparsamer:
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;
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz