Gjest Slettet-8fx0y6VV Skrevet 31. mars 2005 Del Skrevet 31. mars 2005 Hei list = [1,2,3,4] jeg prover aa finne median (paa englelsk, kommer ikke paa hva er paa norsk). Jeg har list[(len(list))/2], men den virker bare paa lister med et odd nummer av elementer i dem. Noen som vet om en funksjon eller en hack som kan hjelpe meg? Espen Lenke til kommentar
Frank2004 Skrevet 1. april 2005 Del Skrevet 1. april 2005 (endret) Hvis antall elementer er et partall, så er vel medianen definert som snittet av de to elementene i midten? Husk forresten å sortere listen din før du prøver å finne medianen, ser ikke at du nevner sortering i eksempelet (listen er riktignok allerede sortert, men vet du at det alltid er tilfelle?). Endret 1. april 2005 av Frank2004 Lenke til kommentar
Gjest Slettet-8fx0y6VV Skrevet 1. april 2005 Del Skrevet 1. april 2005 joda, jeg vet at jeg maa sortere listen, og det var grunnen til at jeg skrev [1,2,3] og ikke [2,1,3] Medianen ja, det var det paa norsk jeg kunne ikke komme paa hva det var i gaar kveld Jeg har en liten ide, men er ikke sikker paa om den vill virke. Skal poste resultatet av testen senere i dag naar jeg kommer hjem. Espen Lenke til kommentar
zeitgeist Skrevet 2. april 2005 Del Skrevet 2. april 2005 (endret) Hei list = [1,2,3,4] jeg prover aa finne median (paa englelsk, kommer ikke paa hva er paa norsk). Jeg har list[(len(list))/2], men den virker bare paa lister med et odd nummer av elementer i dem. Noen som vet om en funksjon eller en hack som kan hjelpe meg? Espen def find_median(numberList): copyNumberList = numberList[:] copyNumberList.sort() length = len(numberList) if length % 2 != 0: # oddetall return numberList[(length - 1) / 2] else: a = numberList[(length - 1) / 2] b = 1 + numberList[(length - 1) / 2] return (a + b) / 2.0 # flyttall partall = [1,2,3,4,5,6] oddetall = [1,2,3,4,5,6,7,8,9] print find_median(partall) >>> 3.5 print find_median(oddetall) >>> 5 tror denne gjør jobben. Jeg kikket litt rundt. Det er faktisk mulig å lage en mer effektiv algoritme der sorteringskravet elimineres. Skal du finne medianen på noen mill samples støtt og satdig, så er det jo verdt moroa ;-) http://en.wikibooks.org/wiki/Computer_Scie...r_4#find-median Endret 2. april 2005 av zeitgeist Lenke til kommentar
Gjest Slettet-8fx0y6VV Skrevet 3. april 2005 Del Skrevet 3. april 2005 Takk saa mye Lenke til kommentar
kingkong Skrevet 3. april 2005 Del Skrevet 3. april 2005 Det er vel ikke nødvendig å gjøre det så komplisert... l.sort(); med = (l[len(l)/2]+l[(len(l)-1)/2])/2.0 ...burde fungere. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå