Java – Suma kolejnych liczb całkowitych od 5 do 1000
Zadanie 1. Suma kolejnych liczb całkowitych od 5 do 1000
Sumowanie – operacja dodawania ciągu liczb, której wynikiem jest suma. Jeśli liczby są dodawane kolejno od lewej do prawej to pośrednie wyniki nazywa się sumami częściowymi lub cząstkowymi. Sumowane liczby (zwane składnikami) mogą być całkowite, rzeczywiste lub zespolone. Oprócz liczb sumowaniu mogą podlegać również inne wielkości: wektory, macierze, wielomiany, lub ogólnie, elementy grupy addytywnej (a nawet monoid). Dla ciągów o skończonej liczbie takich elementów sumowanie zawsze zwraca dobrze określoną sumę.
Zadanie 1. Suma kolejnych liczb całkowitych od 5 do 1000
Sumowanie – operacja dodawania ciągu liczb, której wynikiem jest suma. Jeśli liczby są dodawane kolejno od lewej do prawej to pośrednie wyniki nazywa się sumami częściowymi lub cząstkowymi. Sumowane liczby (zwane składnikami) mogą być całkowite, rzeczywiste lub zespolone. Oprócz liczb sumowaniu mogą podlegać również inne wielkości: wektory, macierze, wielomiany, lub ogólnie, elementy grupy addytywnej (a nawet monoid). Dla ciągów o skończonej liczbie takich elementów sumowanie zawsze zwraca dobrze określoną sumę.
Sumowanie ciągów nieskończonych nie zawsze jest możliwe, a kiedy wartość nieskończonego sumowania może być podana, to obejmuje ona więcej niż tylko zwykłą operację dodawania, mianowicie pojęcie granicy. Sumowanie nieskończonych ciągów tworzy konstrukcję zwaną szeregiem. Innym pojęciem obejmującym granice skończonych sum jest całka. Pojęcie sumowania nabiera szczególnego znaczenia w powiązaniu z ekstrapolacją w kontekście szeregów rozbieżnych.
Sumowanie ciągu [1, 2, 4, 2] to wyrażenie, którego wartością jest suma wszystkich elementów ciągu. W podanym przykładzie to 1 + 2 + 4 + 2 = 9. Ponieważ dodawanie jest łączne, wynik nie zależy od kolejności wykonywanych działań, na przykład <em>(1 + 2) + (4 + 2)</em>
lub <em>1 + ((2 + 4) + 2)</em>
daje w wyniku 9, stąd zazwyczaj pomijane są nawiasy w przypadku wielokrotnego dodawania. Dodawanie jest ponadto przemienne, więc permutacja wyrazów skończonego ciągu również nie zmienia jego sumy (w przypadku ciągów nieskończonych ta właściwość nie zawsze jest prawdziwa; zobacz twierdzenie Riemanna o szeregach warunkowo zbieżnych i kryteria zbieżności szeregów).
Nie ma specjalnego wyróżnionego zapisu sumowania jawnie podanych ciągów gdyż odpowiadające mu wyrażenie wielokrotnego dodawania jest w tym przypadku wystarczające. Drobne trudności pojawiają się gdy ciąg jest jednoelementowy: sumowanie ciągu jednoelementowego nie zawiera znaku dodawania (jest więc nieodróżnialne od wyniku) a sumowanie ciągu pustego nie da się nawet zapisać (lecz można podać w jego sumę „0”). Jednak gdy wyrazy ciągu układają się w jakiś wzór to użyteczny a nawet niezbędny staje się operator sumowania. Na przykład jeśli rozpatrywać sumowanie liczb całkowitych od 1 do 100 można wykorzystać wielokropek w wyrażeniu dodawania aby oznaczyć brakujące wyrazy: 1 + 2 + 3 + … + 99 + 100. W tym przykładzie wzór jest łatwy do odgadnięcia, lecz dla bardziej skomplikowanych przypadków konieczne jest bardziej precyzyjne określanie kolejnych wyrazów, które można osiągnąć dzięki operatorowi „sum
”. Korzystając z tego operatora ten sam przykład można zapisać jako: sum_{i=1}^{100}i=frac{n(n+1)}{2}
dla wszystkich liczb naturalnych n.
— źródło Wiki
Zadanie 2. Utwórz tablice 10-elementową i wygeneruj do niej losowe wartości z przedziału <-10, 10>
// deklaracja tablicy int[] myIntArray = new int[10]; String v_array = "myIntArray[" + myIntArray.length + "] = { "; for (int i = 0; i < myIntArray.length; i++) { rn = -10 + (int) (Math.random() * 20); myIntArray[i] = rn; v_array += rn; if (i < myIntArray.length - 1) { v_array += ", "; } } v_array += " }"; logger.info(v_array);
Zadanie 3. Oblicza ile jest dodatnich elementów w tablicy myIntArray.
np. odpowiedź programu: W tablicy myIntArray[5]
jest/są 3 dodatnie elementy. Source from Bitbucket https://bitbucket.org/karol-preiskorn/java-examples/overview
Zapis wyników do pliku
[pastacode lang=”java” user=”karol-preiskorn” repos=”java-examples” path_id=”/src/sum_natural/Sum_natural.java” revision=”master” highlight=”” lines=”111-127″ provider=”bitbucket”/]Dodanie logowania log4j (w przygotowaniu)
[pastacode lang=”java” user=”karol-preiskorn” repos=”java-examples” path_id=”/src/sum_natural/log4j.properties” revision=”master” highlight=”1″ lines=”” provider=”bitbucket”/] [pastacode lang=”java” manual=”static%20Logger%20logger%20%3D%20LoggerFactory.getLogger(%22SumN%22)%3B%09%20%20%0A%0Alogger.info(%22start%22)%3B” message=”uses log4j in code” highlight=”” provider=”manual”/]- https://alvinalexander.com/blog/post/java/sample-how-format-log4j-logging-logfile-output
- https://alvinalexander.com/blog/post/java/how-print-exception-stack-trace-using-log4j-commons
- https://logging.apache.org/log4j/1.2/manual.html
Suma kwadratów n pierwszych liczb naturalnych (w przygotowaniu)
1^{2}+2^{2}+3^{2}+4^{2}+dots+n^{2}=sum_{k=1}^{n}k^{2}=frac{n(n+1)(2n+1)}{6}=s_{2}
[pastacode lang=”java” user=”karol-preiskorn” repos=”java-examples” path_id=”/src/sum_natural/Sum_natural.java” revision=”master” highlight=”” lines=”129-140″ provider=”bitbucket”/]