Witam. Mam do rozwiązania zadanie którego treść znajduje się poniżej, niestety nie jestem pewny jak je zacząć. Proszę o pomoc.
Te l
- e, to banalne. Co do algorytmu, Odróżniasz pętlę od ifa? Jeśli tak, to nie powinno być problemu z zaimplementowaniem czegoś:
https://www.google.com/search?client=ubuntu&channel=fs&q=series+sumation+algorithm+python&ie=utf-8&oe=utf-8
Dodam od siebie, że zadanie można zrealizować na dwa sposoby: „tradycyjny”, na liczbach zmiennoprzecinkowych, lub z wykorzystaniem fractions
z biblioteki standardowej. To drugie rozwiązanie będzie znacznie dokładniejsze (jedyna utrata informacji jest dokonywana na samym końcu, przed wyświetleniem wyniku), ale i znacznie wolniejsze.
Tak, ale istnieje prawdopodobieństwo, iż prowadzący tak dobrał dane do sprawdzarki, że floaty wystarczą.
Z wyznaczeniem L nie mam problemów ale z algorytmem już trochę tak, bo nie za bardzo wiem jak go zacząć.
Przestudiowałeś wyniki wyszukiwania, które Ci podesłałem?
Tak, i mam jak na razie sumowanie ułamków,:
n=int(input())
suma=0
for i in range(1,n+1):
suma=suma+(1/i)
print(round(suma,2))
Nie wiem jak mnożyć każdy ułamek przez te potęgi ułamków. To ostatnie ćwiczenie, które mi zostało, a muszę oddać zestaw do północy. Kompletna pustka w głowie.
Mnożenie w Pythonie to *
, potęgowanie to **
.
Najtoporniej, nie ma powiedziane co robić gdy nie uda się znaleźć wartości, to dałem górną granicę 1000
iteracji:
# series for ln2
import math
def ln2(eps):
s0 = 1
s = 0
k = 3
n = 1
cnt = 0
while cnt < 1000:
s = s0 + (1 / k) * ( 1 / (9 ** n))
if abs(s - s0) <= eps:
return s * (2 / 3)
n += 1
k += 2
s0 = s
cnt += 1
return ("Failed after 1000 iterations")
def main():
print(ln2(0.1))
print(ln2(0.3))
print(ln2(0.6))
print(ln2(0.09))
print(math.log(2)) # exact
if __name__ == '__main__':
main()
A jak dla mnie, to l_1 == l_2 == l_3 itd., bo w końcu w definicji są trzy kropki na końcu