Obliczenie średniej ważonej
Treść zadania
Wczytaj dwie listy liczb zmiennoprzecinkowych tej samej długości: listę wartości $x_1, x_2, \ldots, x_n$ oraz listę odpowiadających im wag $w_1, w_2, \ldots, w_n$.
Oblicz średnią ważoną wartości:
$\frac{x_1 w_1 + x_2 w_2 + \ldots + x_n w_n}{w_1 + w_2 + \ldots + w_n}$.
Dane wejściowe
- 1. linia: wartości — liczby zmiennoprzecinkowe oddzielone spacjami
- 2. linia: wagi — liczby zmiennoprzecinkowe oddzielone spacjami (tyle samo co wartości)
Dane wyjściowe
Jedna linia: średnia ważona zaokrąglona do 2 miejsc po przecinku (np. 0.29, 7.50).
Ograniczenia
- Wagi są nieujemne, a ich suma jest większa od zera.
Uwagi
- Wynik sformatujesz np. tak:
print(f"{wynik:.2f}").
Przykład
0.2 0.4 0.1 0.2 0.1 2.0 5.0 0.0 2.0 1.0
0.29
$\frac{0.2 \cdot 2 + 0.4 \cdot 5 + 0.1 \cdot 0 + 0.2 \cdot 2 + 0.1 \cdot 1}{2 + 5 + 0 + 2 + 1} = \frac{2.9}{10} = 0.29$.
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 10
Zadania w tym rozdziale ćwiczą jednoczesną pracę na dwóch listach (lub dwóch napisach traktowanych jak ciągi znaków): łączenie, porównywanie, przechodzenie po indeksach i scalanie list posortowanych. Pod koniec rozdziału poznasz zbiory (set) — kolekcje bez powtórzeń, które pozwalają jednym działaniem wyznaczyć część wspólną, sumę czy różnicę dwóch list — oraz funkcje zip i enumerate, ułatwiające przechodzenie po dwóch ciągach naraz.
Konwencje wspólne:
- Każde zadanie jest osobnym programem: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Program nie wypisuje komunikatów typu „Podaj listę:”.
- Każda lista zajmuje na wejściu jedną linię, a jej elementy są oddzielone pojedynczymi spacjami, np.
5 3 7 2. Najpierw podana jest lista 1, w następnej linii lista 2. Każda lista ma co najmniej jeden element. - Listę liczb całkowitych wczytasz tak:
lista = [int(x) for x in input().split()](dla liczb zmiennoprzecinkowych użyjfloatzamiastint). - Gdy wynikiem jest lista, wypisz ją tak, jak robi to
print(lista)w Pythonie: w nawiasach kwadratowych, elementy oddzielone przecinkiem i spacją, np.[1, 2, 3]. Pusta lista to[]. - Gdy treść mówi o elementach „oddzielonych przecinkami bez spacji”, wypisz je w jednej linii, np.
5,1,3, bez przecinka na końcu — np.print(*lista, sep=",").
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomiono1.0 2.0 3.0 1.0 1.0 2.0
2.25
Test 2
Nie uruchomiono10.0 0.0 3.0 1.0
7.50
Test 3
Nie uruchomiono5.5 2.0
5.50
Test 4
Nie uruchomiono3 4 5 1 1 1
4.00
Test 5
Nie uruchomiono1.0 2.0 1.0 2.0
1.67
Test 6
Nie uruchomiono-3.0 1.0 2.0 1.0
-1.67
Test 7
Nie uruchomiono-2.0 4.0 1.0 1.0 0.0 3.0
0.25