Registreer FAQ Ledenlijst Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 28-10-2005, 15:13
Verwijderd
Hoi,

Ik moet voor school een programma schrijven dat de gemiddelde woordlengte en de stadaarddeviatie van een tekstbestand berekent. Het gemiddelde berekenen kan ik wel, maar hoe laat ik Perl de standaarddeviatie berekenen? Welke formule heb ik daarvoor nodig?

Alvast bedankt
Met citaat reageren
Advertentie
Oud 28-10-2005, 15:19
dafelix
Avatar van dafelix
dafelix is offline
Citaat:
1e hit op google zegt:

Om de standaarddeviatie (van een populatie) te berekenen neem je de volgende stappen:

* Bereken het gemiddelde.
* Neem van elk getal de afstand tot het gemiddelde
* Neem het kwadraat van die afstanden.
* Bereken het gemiddelde van die kwadraten.
* Neem de wortel van de uitkomst
wss kun je 't zelf wel toepassen op je tekstbestand
__________________
$karma++;
Met citaat reageren
Oud 28-10-2005, 19:32
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
Perl is gaaf!
Ik neem aan dat je weet wat standaardafwijking is en hoe dit te berekenen.

De truc is dit:
-Het bestand in array laden.
Code:
open(BESTAND, "./bestand.txt");
while($line = <BESTAND>); # leest 1 lijn in 
@lijn = split(/ /, $line);
push(@bestand, @lijn);
-de een array maken met de lengtes van ieder element in de @bestand array.
while(@bestand) {
$var = length(pop(@bestand));
push(@array, $var);
-Het gemiddelde van die array berekenen. Dat doe je met iets als dit:
Code:
$aantal = @array;
$i = 0;
while($array[i]) {
$totaal += $array[i];
$i++;
}
$gemiddelde = $totaal/$aantal;
-daarna maak je een array met de kwadraatwaardes van de afwijking van het gemiddelde, in deze trant:
Code:
$i = 0;
while ($array[i]) {
$var = ($gemiddelde - $array[i]) ** 2;
push (@baai, $var);
$i++;
}
-daarna bereken je het gemiddelde van de @baai array, zoals je dat met de @array hebt gedaan.
-daarna bereken je de wortel hier van. Dit doe je met de sqrt functie.
Code:
$stda = sqrt($nieuw_gemiddelde);
print "$stda\n";
het is een tijdje geleden dat ik perl heb gedaan, dus als er grove fouten in zitten spijt me dat verbeter waar noodzakelijk.
EDIT: dit zou moeten werken.

Laatst gewijzigd op 29-10-2005 om 10:51.
Met citaat reageren
Oud 30-10-2005, 01:27
Manuzhai
Avatar van Manuzhai
Manuzhai is offline
Ik wil altijd mijn ogen uitrukken van Perl.
__________________
Slechts beschikbaar via naamzoek/privebericht.
Met citaat reageren
Oud 30-10-2005, 09:52
Verwijderd
Citaat:
Manuzhai schreef op 30-10-2005 @ 02:27 :
Ik wil altijd mijn ogen uitrukken van Perl.
nee, PHP is zo goed

/flame
Met citaat reageren
Oud 30-10-2005, 09:53
dragonstorm
Avatar van dragonstorm
dragonstorm is offline
vind je dat niet prachtig, dan?

Nou ja, ik ben dan ook een Lispnik, en in alle eerlijkheid zijn veel andere talen mooier dan dit (in het bijzonder scheme en clisp). Maar het is wel heel _krachtig_, veel krachtiger voor dit soort functies dan c/c++/java/C#. Hell, voor dit beperkte nut, zelfs krachtiger dan LISP.

LISP wint echter weer op heel andere vlakken, en imho is dat (en de leesbaarheid ervan) belangrijker. Maar je kunt niet ontkennen dat perl hier mooi werk deed
Met citaat reageren
Oud 30-10-2005, 12:40
Manuzhai
Avatar van Manuzhai
Manuzhai is offline
Citaat:
eddie schreef op 30-10-2005 @ 10:52 :
nee, PHP is zo goed

/flame
Nee, PHP is ook kut, maar zelfs de syntax van PHP nodigt minder uit tot obfuscatie dan die van Perl. Ik werk met Python these days, da's pas clean.
__________________
Slechts beschikbaar via naamzoek/privebericht.
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 22:24.