Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Häufigkeitsanalyse von Zahlen (https://www.delphipraxis.net/82297-haeufigkeitsanalyse-von-zahlen.html)

moelski 10. Dez 2006 16:09


Häufigkeitsanalyse von Zahlen
 
Hallo !

Ich suche jetzt schon ein Weilchen, kann aber nix wirklich passendes finden. Und zwar geht es mir um Häufigkeitsanalysen bei Zahlen. Hat einer von euch da zufällig eine Funktion für oder schon mal irgendwo was zu dem Thema gefunden?
Genaugenommen geht es mir um folgendes ... Ich habe einen Pulk von Zahlen. Sagen wir mal

1, 2, 2, 3, 4, 4, 5, 5, 5

Ergebnis:
1= 1x, 2= 2x, 3 = 1x, 4 = 2x, 5 = 3x

Ist sicher ein ganz einfaches Beispiel aber vom Prinzip her wohl klar. Gibt es sowas als Funktion und vor allem auch mit der Möglichkeit das mit Double Werten zu tun? Und was dann auch klasse wäre wenn man den Bereich beim Double einstellen könnte, also in welcher Schrittweite er die Analyse macht. Weil sonst kriegt man unter umständen viel zu viele Ergebnisse.

Hope on any hints ...

Nikolas 10. Dez 2006 16:57

Re: Häufigkeitsanalyse von Zahlen
 
ganz grob
Delphi-Quellcode:
for i:=1 to high(DeineListe) do
begin
 a=DeineListe(i);
 Andereliste(a)=Andereliste(a)+1;
end;

Showmessage('Die '5' trat genau '+inttostr(AndereListe(5))+' Mal auf');
Andereliste sollte array of integer und sauber initialisiert sein.

Für das Intervall könnte man so was machen:
länge=0,5;

a=mod(c/länge) (sonst wie oben)

bei c=2,1 wäre dass dann c/länge= 4+Rest -> a=4, in diesem Abschnitt hättest du dann Zahlen zwischen 2,0 und 2,499.

das a kannst du dann wieder zum eintragen in deine neue Liste nehmen und wie oben auslesen.

DP-Maintenance 10. Dez 2006 19:47

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi Frage...

trojaner 12. Dez 2006 09:56

Re: Häufigkeitsanalyse von Zahlen
 
Hallo
ich mache das so:
Delphi-Quellcode:
procedure TFHaupt.BarZeichnen(ILList,RLList : TStringList;GIL,GRL : double;Farbe : TColor);
var
  i        : integer;
  x1        : integer;
  y1        : integer;
  hilfreal1 : double;
begin
  try
    ILBar.Clear;
    RLBar.Clear;
    for i :=0 to 20 do HistoIL1[i]:=0;
    for i:=0 to ILList.Count-1 do
    begin
      x1:= round(strtofloat(ILList.strings[i]) /(GIL/20));
      HistoIL1[x1]:=HistoIL1[x1]+1;
    end;
    try
      if (((KeinRL = false)and(GRL < 85))or (Messgeraet = 9)) then
      begin
        for i :=0 to 20 do HistoRL1[i]:=0;
        for i:=0 to RLList.Count-1 do
        begin
          hilfreal1:=strtofloat(RLList.strings[i])-GRL;
          y1:= round(hilfreal1 / (abs((GRL+30)-GRL)/20));
          HistoRL1[y1]:=HistoRL1[y1]+1;
        end;
      end;
    except
    end;
    try
      for i :=0 to 20 do
      begin
        ILBar.AddXY((i/(20/GIL)),HistoIL1[i],'',Farbe);
        if (((KeinRL = false)and(GRL < 85))or (Messgeraet = 9)) then
          RLBar.AddXY((i/(20/30)+GRL),HistoRL1[i],'',Farbe);
      end;
    except
    end;
  except
  end;
end;
Gruss
Trojaner

Nikolas 12. Dez 2006 10:28

Re: Häufigkeitsanalyse von Zahlen
 
Und was ist 'HistoIl1, messgeraet' ilbar' usw?

Das ist eine Lösung die direkt auf dich (und eines deiner Formulare) abgestimmt ist. Mit dem Problem selbst hat es aber recht wenig zu tun.

moelski 12. Dez 2006 10:57

Re: Häufigkeitsanalyse von Zahlen
 
Moin !

Jo, das wollte ich auch schon nachfragen.

Ich bastele gerade an einer eigenen Lösung.
Mal sehgen wie weit ich komme.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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