Avatar billede itf Nybegynder
23. februar 2004 - 20:14 Der er 5 kommentarer og
1 løsning

Geometrisk gennemsnits function

Hej,

Jeg skal bruge en function der kan udregne det geometrisk og arithmetisk gennemsnit af en array. Ved udregning af den arithmetisk gennemsnit kan jeg bruge mean functionen i Delphi. Men jeg kan ikke umiddelbart find en function til udregning af den geometriske gennemsnit for et antal numre.

Et eksemple:

a=2, b=3, c=10 (antal nummer = 3)

Arithmetisk gennemsnit = (a+b+c)/n
                      = (2+3+10)/3= 5
Geometrisk gennemsnit = (a*b*c)^(1/n)
                      = (2*3*4)^(1/3) = 3.9419

Jeg vil meget gerne vide om nogen har/kender et component/adin som jeg kan bruge til Delphi.

M.v.h.
Peter
Avatar billede arne_v Ekspert
23. februar 2004 - 20:24 #1
10 linier kode:

function geomean(x : array of double) : double;

var
  prod : double;
  i : integer;

begin
  prod := 1;
  for i := low(x) to high(x) do prod := prod * x[i];
  geomean := exp(ln(prod)/3);
end;
Avatar billede arne_v Ekspert
23. februar 2004 - 20:27 #2
geomean := exp(ln(prod)/3);

kan også laves som:

geomean := power(prod, 1/3);

hvis man uses Math, men jeg er meget nostalgisk !
Avatar billede itf Nybegynder
23. februar 2004 - 20:43 #3
Hej,

Ofte er de bedste løsninger, de mest simple løsninger. (burde selv have fundet ud af det... :-) ) Det var alletiders hjælp, mange tak.
Avatar billede borrisholt Novice
02. marts 2004 - 16:15 #4
Itf>> Venter du på nogen skriver dig en løsning i Assembler ?

Jens B
Avatar billede itf Nybegynder
02. marts 2004 - 19:29 #5
Hej,
Jeg har fundet en løsning, ellers tak. :-)
Avatar billede borrisholt Novice
05. marts 2004 - 09:11 #6
SÅ LUK DIT SPØRGSMÅL !!!!

JENS B
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester