Het $$n$$-de harmonische getal is de som \[\sum_{i=1}^{n}\frac{1}{i}\]
Voor kleine waarden van $$n$$ is het eenvoudig om deze som te gewoon berekenen. Als $$n$$ echter zeer groot wordt, dan kan dit heel wat tijd in beslag nemen. Voor grote waarden van $$n$$ gebruik je dus beter een benadering die eenvoudig te berekenen is. De harmonische getallen kan je benaderen met onderstaande formule: \[\ln(n) + \gamma + \frac{1}{2n} - \frac{1}{12n^2} + \frac{1}{120n^4}\]
Hierbij staat $$\ln$$ voor de natuurlijke logaritme11. De $$\gamma$$ uit de formule is de constante van Euler-Mascheroni22 (niet te verwarren met het getal van Euler dat voorgesteld wordt door $$e$$) en is ongeveer gelijk aan 0.577215664901532.
Schrijf een functie harmonisch_exact die het $$n$$-de harmonische getal exact berekent. De functie neemt één argument: $$n$$.
Schrijf een functie harmonisch_benaderd die het $$n$$-de harmonische getal benaderd berekent. De functie neemt één argument: $$n$$.
Schrijf een functie harmonisch die het $$n$$de harmonische getal berekent door de exacte manier te gebruiken als $$n$$ kleiner is dan 100 en de benadering voor andere waarden. De functie neemt één argument: $$n$$. Vermijd overbodige duplicatie van code.
>>> harmonisch_exact(10)
2.9289682539682538
>>> harmonisch_benaderd(10)
2.9289682578955776
>>> harmonisch(10)
2.9289682539682538