From f5edd8ed79fced63a91fa68d18ba3361d50f69d1 Mon Sep 17 00:00:00 2001 From: Szymon P Date: Tue, 12 May 2026 18:49:01 +0200 Subject: [PATCH] bla --- .../matematyka_dyskretna/wykład 18.md | 3 + .../Prawdopodobieństwo.md | 19 ++- .../matematyka_stosowana/laby/lab_9.R | 122 ++++++++++++++++++ uczelnia/2_semestr/python/cuda/flake.nix | 65 ---------- uczelnia/2_semestr/python/laby/9/zad1.py | 14 ++ uczelnia/2_semestr/python/laby/9/zad2.py | 23 ++++ uczelnia/2_semestr/python/laby/9/zad3.py | 11 ++ uczelnia/2_semestr/python/laby/9/zad4.py | 94 ++++++++++++++ .../techniki_cyfrowe/Technika cyfrowa.md | 3 +- 9 files changed, 286 insertions(+), 68 deletions(-) create mode 100644 uczelnia/2_semestr/matematyka_dyskretna/wykład 18.md create mode 100644 uczelnia/2_semestr/matematyka_stosowana/laby/lab_9.R delete mode 100644 uczelnia/2_semestr/python/cuda/flake.nix create mode 100644 uczelnia/2_semestr/python/laby/9/zad1.py create mode 100644 uczelnia/2_semestr/python/laby/9/zad2.py create mode 100644 uczelnia/2_semestr/python/laby/9/zad3.py create mode 100644 uczelnia/2_semestr/python/laby/9/zad4.py diff --git a/uczelnia/2_semestr/matematyka_dyskretna/wykład 18.md b/uczelnia/2_semestr/matematyka_dyskretna/wykład 18.md new file mode 100644 index 0000000..98ead8a --- /dev/null +++ b/uczelnia/2_semestr/matematyka_dyskretna/wykład 18.md @@ -0,0 +1,3 @@ +Permutacją zbioru nazywamy dowolną iniekcję sigma an do an. Zbiór wszystkich permutacji zbioru an oznaczamy Sn z działaniem składania funkcji jest grupą. + +Grupa ma dobre dzialania :D \ No newline at end of file diff --git a/uczelnia/2_semestr/matematyka_stosowana/Prawdopodobieństwo.md b/uczelnia/2_semestr/matematyka_stosowana/Prawdopodobieństwo.md index 3fb7294..ff0f9cf 100644 --- a/uczelnia/2_semestr/matematyka_stosowana/Prawdopodobieństwo.md +++ b/uczelnia/2_semestr/matematyka_stosowana/Prawdopodobieństwo.md @@ -1,6 +1,4 @@ # Spis tematów -Oto uporządkowana lista tematów, które pojawiają się w przesłanych przez Ciebie notatkach. Zostały one pogrupowane w logiczne kategorie: - **1. Podstawy rachunku prawdopodobieństwa i zdarzenia losowe** - Przestrzeń zdarzeń elementarnych (Ω) i pojedyncze zdarzenia elementarne (ω) @@ -289,3 +287,20 @@ $$ $\chi^2-2.5 e K$, więc na poziomie istotności 0.05 odrzucamy $H_0$ +# Analiza wariancji +Pobieramy próbki +$x_{ij}$ j - ty wynik w i-tej próbce +Średnia +Średnia ogólna – średnia ze wszystkich wyników razem (średnia ważona w grupach) +Analiza wariancji opiera się na obserewacji Karla Pearcena – jakbyśmy policzyli sumy kwadratów i odjęli średnią ogólną to rozbijemy to ona mierzy zmienność między próbkami. Suma kwadratów odchyleń według grup (resztkowa suma kwadratów) $= q_G$ +Suma odchyleń kwadratów między próbami $= q_P$ +Wszystkie q traktujemy jako realizacje zmiennych losowych Q z indeksem odpowiednim do q. +Rozkład fishera snedekora. + +Test Barteletta jednorodności w wariancji w k populacji. +Zał: +- Jednakowe wariancje +- Rozkład normalny + +Test rangowych znaków dla jednej populacji +Rangowanie polega na nadawaniu rang wartościom. Przy identycznych wartościach nadajemy średnią artmetyczną rang, które przypadałaby na te wartości. \ No newline at end of file diff --git a/uczelnia/2_semestr/matematyka_stosowana/laby/lab_9.R b/uczelnia/2_semestr/matematyka_stosowana/laby/lab_9.R new file mode 100644 index 0000000..f19ceb5 --- /dev/null +++ b/uczelnia/2_semestr/matematyka_stosowana/laby/lab_9.R @@ -0,0 +1,122 @@ +# zadanie 1 + +# a) + +# założenie: normalność rozkładu – test shapiro-wilka + +# hipoteza podstawowa h0 – rozkład wzrostu w populacji mężczyzn jest normalny +# hipoteza h1 – nieprawda, że h0 + +shapiro.test(Ankieta.M$Wzrost) +# Statystyka testowa W = 0.9598, p-value = 0.04048 +# alpha = 0.01 # poziom istotności +# wniosek alpha < p-value, więc na poziomie istotności 0.01 nie ma podstaw do odrzucenia h0, że rozkład wzrostu w populacji mężczyzn jest zgodny z rozkładem normalnym. + +# b) +# przedzial ufności dla wartości średniej w populacji (mężczyzn) +t.test(Ankieta.M$Wzrost, conf.level = 0.95) +# 178.0049 181.6403 + +# interpretacja: przedział liczbowy od 178.0049 do 181.6403 z prawdopodobieństwem 0.95 obejmuje nieznaną wartość średnią wzrostu w populacji mężczyzn studiujących na pierwszym roku WI ZUT w Szczecinie w tym roku akademickim (2025/2026) + +t.test(Ankieta.M$Wzrost, conf.level = 0.98) +# 177.6509 181.9942 + +# ze wzrostem współczynnika ufności poszerza się przedział ufności + +# c) +# przedział ufności dla odchylenia standardowego w populacji m. + +przedzial.odchylenie = function(x, uf) { + # 1 - a = uf + # a = 1 - uf + a = 1 - uf + n = length(x) + ss_z_daszkiem = var(x) + # s^2 = (n - 1)/n * ss_z_daszkiem + ss = (n - 1)/n * ss_z_daszkiem + + dolna = sqrt((n * ss) / qchisq(1 - (a / 2), n - 1)) + gorna = sqrt((n * ss) / qchisq(a / 2, n - 1)) + round(cbind(dolna, gorna), 4) +} + +przedzial.odchylenie(Ankieta.M$Wzrost, 0.97) +# 5.9801 8.8895 + +# interpretacja: przedzial o końcach 5.9801 i 8.8895 [cm] z ufnością 0.97 obejmuje rzeczywistą wartość odchylenia standardowego wzrostu w populacji mężczyzn studiujących na pierwszym roku WI ZUT w Szczecinie w tym roku akademickim. + +# d) +# test dla wartości średniej w populacji +# hipoteza h0: m = 180 +# hipoteza h1: m > 180 +t.test(Ankieta.M$Wzrost, mu = 180, alternative = 'g') +# statystyka testowa t = -0.19518, df = 61, p-value = 0.577 +# alpha = 0.01 +# alpha < p-value, więc +# na poziomie istotności 0.01 nie ma podstaw do odrzucenia hipotezy h0. Nie można zatem potwierdzić hipotezy, że średni wzrost mężczyzn w badanej populacji jest większy niż 180 cm. + + +# zadanie 2 + +table(Ankieta$Sz.średnia) +# LO(RM) = 22 + +# a) +# przedział ufności dla odsetka (wskaźnika struktury, frakcji, procentu, proporcji) +prop.test(22, 72, conf.level = 0.98) +# 0.1909 0.4489 +# te końce nie mają jednostek! + +# interpretacja: przedział o końcach 0.1909 i 0.4489 z ufnością 0.98 obejmuje rzeczywistą wartość odsetka osób, które ukończyły LO(RM) w badanej populacji. + +# b) +# test dla wskaźnika struktury +# hipoteza h0: p = 45% +# hipoteza h1: p < 45% +prop.test(22, 72, p = 0.45, alternative = 'l') +# statystyka testowa – X-squared = 5.5, df = 1, p-value = 0.009508 +# alpha = 0.05 +# alpha > p-value, więc +# odrzucamy h0 + +# Alpha jest większa niż p-value, więc na poziomie istotności 0.05 odrzucamy hipotezę h0 i przyjmujemy h1, zatem odsetek osób, które ukończyły LO(RM) w badanej populacji studentów jest istotnie mniejszy, niż 45%. + +# zadanie 3 + +# a) +# hipoteza h0: rozkład wagi w populacji kobiet jest normalny +# hipotezea h1: rozkład wagi w populacji kobiet nie jest normalny + +shapiro.test(Ankieta.K$Waga) +# W = 0.94975, p-value = 0.6656 +# alpha = 0.05 +# alpha < p-value, więc +# na poziomie istotności 0.05 nie ma podstaw do odrzucenia h0, że rozkład wagi w populacji kobiet jest normalny + +# b) +t.test(Ankieta.K$Waga, conf.level = 0.98) +# 49.34915 63.85085 + +# interpretacja: przedział o końcach 49.34915 i 63.85085 [kg] z ufnością 0.98 zawiera rzeczywistą wartość średniej wagi w populacji wszystkich kobiet studiujących na I roku WI + +# zadanie 4 +# a) + +table(Ankieta$M.zamieszkania) +# akademik = 23 +prop.test(23, 72, conf.level = 0.995) +# 0.1842 0.4918 + +# interpretacja: przedział o końcach 0.1842 i 0.4918 z ufnością 0.995 obejmuje rzeczywistą wartość odestka osób, które mieszkają w akademiku podczas studiowania na pierwszym roku kierunku informatyka na WI ZUT w Szczecinie w tym roku akademickim + +# b) +# hipoteza h0: p = 0.35 +# hipoteza h1: p != 0.35 +prop.test(23, 72, p = 0.35, alternative = 'two.sided') +# X-squared = 0.17643, df = 1, p-value = 0.6745 +# alpha = 0.05 +# alpha < p-value, więc +# odrzucamy h0 + +# wniosek: Alpha jest mniejsze, niż p-value, więc nie ma podstaw do odrzucenia h0, że odsetek osób, które mieszkają w akademiku w populacji wszystkich studentów I roku na WI różnie się istotnie od 35% \ No newline at end of file diff --git a/uczelnia/2_semestr/python/cuda/flake.nix b/uczelnia/2_semestr/python/cuda/flake.nix deleted file mode 100644 index ae5820d..0000000 --- a/uczelnia/2_semestr/python/cuda/flake.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - description = "Środowisko dla ZED SDK (ZED 2i) + Python"; - - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - }; - - outputs = - { self, nixpkgs }: - let - system = "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; - config = { - allowUnfree = true; - }; - }; - in - { - devShells.${system}.default = - let - fhs = pkgs.buildFHSUserEnv { - name = "zed-env"; - targetPkgs = - pkgs: with pkgs; [ - glibc - gcc-unwrapped.lib - stdenv.cc.cc.lib - glib - zlib - binutils - pciutils - wget - libusb1 - - libGL - xorg.libX11 - xorg.libXext - - cudaPackages.cudatoolkit - cudaPackages.cudnn - - (python3.withPackages ( - ps: with ps; [ - pip - numpy - opencv4 - open3d - ] - )) - ]; - - profile = '' - export LD_LIBRARY_PATH=/run/opengl-driver/lib:/usr/lib:/usr/lib32:$LD_LIBRARY_PATH - export CUDA_PATH=${pkgs.cudaPackages.cudatoolkit} - - export PIP_PREFIX=$(pwd)/.local_pip - export PYTHONPATH=$(pwd)/.local_pip/lib/python3.11/site-packages:$PYTHONPATH - export PATH=$(pwd)/.local_pip/bin:$PATH - ''; - }; - in - fhs.env; - }; -} diff --git a/uczelnia/2_semestr/python/laby/9/zad1.py b/uczelnia/2_semestr/python/laby/9/zad1.py new file mode 100644 index 0000000..43ba715 --- /dev/null +++ b/uczelnia/2_semestr/python/laby/9/zad1.py @@ -0,0 +1,14 @@ +class PowerOfTwo: + def __init__(self, exp) -> None: + self.exp = exp + + def __call__(self) -> int: + result: int = 2**self.exp + self.exp += 1 + return result + + +if __name__ == "__main__": + power = PowerOfTwo(1) + for _ in range(10): + print(power()) diff --git a/uczelnia/2_semestr/python/laby/9/zad2.py b/uczelnia/2_semestr/python/laby/9/zad2.py new file mode 100644 index 0000000..9c664a3 --- /dev/null +++ b/uczelnia/2_semestr/python/laby/9/zad2.py @@ -0,0 +1,23 @@ +class PowerOfNumber: + def __init__( + self, number: int, exp: int, min_exp: int = 0, max_exp: int = 10 + ) -> None: + self.exp: int = exp + self.number: int = number + self.min_exp: int = min_exp + self.max_exp: int = max_exp + + def __call__(self) -> int | None: + if self.min_exp < self.exp < self.max_exp: + result: int = self.number**self.exp + self.exp += 1 + return result + return None + + +if __name__ == "__main__": + power = PowerOfNumber(3, 1) + for _ in range(20): + result: int | None = power() + if result: + print(result) diff --git a/uczelnia/2_semestr/python/laby/9/zad3.py b/uczelnia/2_semestr/python/laby/9/zad3.py new file mode 100644 index 0000000..66babe3 --- /dev/null +++ b/uczelnia/2_semestr/python/laby/9/zad3.py @@ -0,0 +1,11 @@ +from typing import Generator + + +def power_of_number(number: int, min_exp: int = 0, max_exp: int = 10) -> Generator[int]: + for i in range(min_exp, max_exp): + yield number**i + + +if __name__ == "__main__": + for i in power_of_number(4): + print(i) diff --git a/uczelnia/2_semestr/python/laby/9/zad4.py b/uczelnia/2_semestr/python/laby/9/zad4.py new file mode 100644 index 0000000..2a954bf --- /dev/null +++ b/uczelnia/2_semestr/python/laby/9/zad4.py @@ -0,0 +1,94 @@ +from random import randint + + +class DList: + class Element: + def __init__(self, value, next=None, prev=None): + self.__value = value + self.next = next + self.prev = prev + + @property + def value(self): + return self.__value + + def __init__(self, args: list[int]) -> None: + self.__root = None + self.__end = None + for i in args: + self.insert(i) + + def insert(self, value: int) -> None: + new_element = self.Element(value) + + if self.__root is None: + self.__root = new_element + self.__end = new_element + return + + current = self.__root + + while current is not None and current.value < value: + current = current.next + + if current == self.__root: + new_element.next = self.__root + self.__root.prev = new_element + self.__root = new_element + elif current is None: + new_element.prev = self.__end + self.__end.next = new_element + self.__end = new_element + else: + new_element.next = current + new_element.prev = current.prev + current.prev.next = new_element + current.prev = new_element + + def __iter__(self): + curr = self.__root + while curr is not None: + yield curr.value # - zwraca generator + curr = curr.next + + def __reversed__(self): + curr = self.__end + while curr is not None: + yield curr.value + curr = curr.prev + + def __contains__(self, value): + current = self.__root + while current is not None and current.value < value: + current = current.next + return current is not None and current.value == value + + +# - - - - - - - - - - - - - - - - - TESTY - - - - - - - ---------- +dlista = DList([2, 3, 4, 5]) +for i in dlista: + print(i) +print("\n - - - - - - - -\n") + +dlista = DList([8, 10, 9, 13]) +dlista.insert(7) +dlista.insert(12) +dlista.insert(15) + +for i in reversed(dlista): + print(i) + +print("\n - - - - - - - -\n") +print(" Contain 8: ", 8 in dlista) +print(" Contain 13: ", 13 in dlista) +print(" Contain 15: ", 15 in dlista) +print(" Contain 6: ", 6 in dlista) +print(" Contain 11: ", 11 in dlista) +print(" Contain 17: ", 17 in dlista) + +nowa_lista = DList([]) +for i in range(1000): + nowa_lista.insert(randint(0, 100)) + +for i in nowa_lista: + print(i) diff --git a/uczelnia/2_semestr/techniki_cyfrowe/Technika cyfrowa.md b/uczelnia/2_semestr/techniki_cyfrowe/Technika cyfrowa.md index 6b6c4fb..35dc84a 100644 --- a/uczelnia/2_semestr/techniki_cyfrowe/Technika cyfrowa.md +++ b/uczelnia/2_semestr/techniki_cyfrowe/Technika cyfrowa.md @@ -14,4 +14,5 @@ rlc sratata Czas propagacji na wykresie czasu to przesunięcie zielonej linii. -Verlilog, jakaś płytka z diodą \ No newline at end of file +Verlilog, jakaś płytka z diodą +