Logarytm o dowolnej podstawie LG

Zadanie programistyczne
Stworzyć funkcję skalarną umożliwiającą dla podanej liczby obliczenie logarytmu o dowolnej podstawie.
Rozwiązanie
Napisać metodę lg. Metoda ta została umieszczona w klasie DerbyUtil.

public static double lg(double liczba, int podstawa) {
	return Math.log10(liczba) / (Math.log10(podstawa));
}

Zadeklarować funkcję w bazie Derby (skrypt r086.sql):

CREATE FUNCTION LG(DATA DOUBLE, BASE INTEGER)
    RETURNS DOUBLE
    PARAMETER STYLE JAVA
    NO SQL
    LANGUAGE JAVA
    EXTERNAL NAME 'aderby.DerbyUtil.lg'
;    

Napisać klasę testującą R086_LG.
Wynik
Przetestować przykład:

2 37.8 5.24031432933371
1 39.7 5.3110671022555955
3 36.6 5.19377174339668
3 33.2 5.053111336459562
2 39.2 5.292781749227847
2 40.6 5.343407822297814
2 41.2 5.364572432295856
1 40.1 5.325530331567558
1 39.8 5.314696525656286
2 38.9 5.281698250098829
1 38.3 5.259272487037594
2 37.9 5.24412594328373
2 37.4 5.224966365000274
3 37.1 5.213347281733441
3 36.8 5.20163386116965
3 36.7 5.197708157955851
1 36.6 5.19377174339668

Pliki do ściągnięcia

R086_LG.zip (klasa)
r086.zip (skrypt)
Aktualny (tworzony narastająco) plik module-info.java
Aktualny (tworzony narastająco) plik DerbyUtil.java
Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszystkich wpisach w projekcie. W przypadku pliku module-info.java może być potrzebne skreślenie niepotrzebnych wpisów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *