Advertisement
Patresss

Untitled

Apr 14th, 2015
450
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.21 KB | None | 0 0
  1. #!/user/bin/env python 3.2
  2.  
  3. from sys import argv
  4. from sys import exit
  5. import random
  6. import math
  7.  
  8. import os
  9. os.system('clear')
  10.  
  11.  
  12. #1. Proszę napisać generator zwracający kolejne potęgi liczby przekazanej jako parametr, aż do potęgi przekazanej jako drugi parametr (1p).
  13. #1__________________________________________
  14. def potega(n,m):
  15.     x=n
  16.     for i in range(m):
  17.         yield x
  18.         x*=n
  19.  
  20. print("Zadanie 1:")
  21. for i in potega(2,3):
  22.     print(i)
  23.  
  24. #2. Proszę wygenerować losowy ciąg zer i jedynek o długości N. Proszę napisać generator zwracający liczbę zer oddzielających kolejne jedynki w sekwencji przekazanej jako parametr. Korzystając z utworzonego generatora proszę obliczyć średnią odległość między kolejnymi jedynkami w wygenerowanych wcześniej ciągu
  25. #2__________________________________________
  26. def zerojeden(n):
  27.     l=[random.randint(0,1) for i in range(n)]
  28.     return l
  29.  
  30. def liczbazer(seq):
  31.         licznik=0
  32.         for i in seq:
  33.             if i==1 and licznik!=0:
  34.                 yield licznik
  35.                 licznik=0
  36.             elif i==0:
  37.                 licznik+=1
  38.  
  39.  
  40. print("Zadanie 2:")
  41. lista=zerojeden(10)
  42. print(lista)
  43. suma=0
  44. for i in liczbazer(lista):
  45.     print(i)
  46.     suma+=i
  47. srednia=suma/sum(1 for x in liczbazer(lista))
  48. print(list(liczbazer(lista)))
  49. print("srednia: "+ str(srednia))
  50.  
  51.  
  52. #3. Proszę napisać trzy funkcje generatorowe:
  53. #zwracającą kolejne elementy ciągu Fibonacciego,
  54. #zwracającą te wartości z przekazanej jako parametr sekwencji, które są parzyste/nieparzyste
  55. #zwracającą te wartości z przekazanej jako pierwszy parametr sekwencji, które są niewiększe niż drugi parametr przekazany do funkcji
  56. #Korzystając ze zdefiniowanych funkcji proszę obliczyć sumę parzystych/nieparzystych elementów ciągu Fibonacciego mniejszych od 100 (2p).
  57. #3_________________________________
  58. def fib(n):
  59.     a, b = 0, 1
  60.     while 0<n:
  61.         yield a
  62.         a, b = b, a+b
  63.         n=n-1
  64.  
  65. def parz(n):
  66.     for i in n:
  67.         if i%2==0:
  68.             yield i
  69. def nparz(n):
  70.     for i in n:
  71.         if i%2!=0:
  72.             yield i
  73.  
  74. def nwieksze(seq, n):
  75.     for i in seq:
  76.         if i<=n:
  77.             yield i
  78.  
  79.  
  80. print("Zadanie 3:")
  81.  
  82.  
  83. print("Ciag:")
  84. for i in fib(15):
  85.     print(i)
  86.  
  87. l1=fib(15)
  88. print("Parzyste:")
  89. for i in parz(l1):
  90.     print(i)
  91.  
  92. l2=fib(15)
  93. print("Nie parzyste:")
  94. for i in nparz(l2):
  95.     print(i)
  96.  
  97. l3=fib(15)
  98. x=10
  99. print("Nie wieksze niz "+str(x)+" :")
  100. for i in nwieksze(l3,x):
  101.     print(i)
  102.  
  103. sumap = 0
  104. suman = 0
  105. for i in parz (nwieksze (fib(100),100) ):
  106.     sumap+=i
  107. for i in nparz (nwieksze (fib(100),100) ):
  108.     suman+=i
  109. print("Suma parzystych: "+ str(sumap))
  110. print("Suma nie parzystych: "+ str(suman))
  111.  
  112.  
  113.  
  114. #4. Proszę napisać generator działający dokładnie tak samo jak wbudowany range, ale pozwalający na generowanie liczb rzeczywistych (2p). 
  115. #4__________________________________________
  116. def myrange(pocz, kon=float("inf"), krok=1):
  117.     if kon==float("inf"):
  118.         kon=pocz
  119.         pocz=0 
  120.     while pocz<kon:
  121.         yield pocz
  122.         pocz+=krok
  123.  
  124.  
  125.    
  126. print("Zadanie 4:")
  127. for i in myrange(-2.3,5.4,0.7):
  128.     print (i)
  129.  
  130.    
  131. #5. Proszę napisać generator zwracający liczby spełniające warunek, że wartość kolejna jest co najmniej o 0.4 mniejsza lub większa od wartości poprzedniej. Działanie generatora należy zakończyć, jeżeli wylosowana wartość jest mniejsza od 0.1 (1p).
  132. #5_________________________________
  133. def plusminus():
  134.     pierwsza=random.random()
  135.     nastepna=random.random()
  136.     while nastepna > 0.1:
  137.         if pierwsza - 0.4 < nastepna < pierwsza + 0.4:
  138.             yield nastepna
  139.         pierwsza=nastepna
  140.         nastepna=random.random()
  141.        
  142. print("Zadanie 5:")
  143. for i in plusminus():
  144.     print(i)
  145.  
  146.  
  147. #6. Proszę napisać generator zwracający wartość ui zależności rekurencyjnej:
  148. #ui=ui-1+a/xi-1 z wartością początkową u0=0 dla x0=1 oraz z xi=x0+ia.
  149. #Obliczenia proszę poprowadzić dla a=0.05 i przerwać je dla x=1.5. Zależność pozwala na wyznaczenie przybliżonej wartości logarytmu naturalnego z danej liczby. Generator ma zwracać x oraz przybliżoną i dokładną wartość logarytmu naturalnego (2p).
  150. #6_________________________________
  151. def fib(n):
  152.     if n == 0 or n == 1:
  153.         return n
  154.     else:
  155.         return fib(n-1)+fib(n-2)
  156.  
  157. '''def rek(u, x, a):
  158.     if u==0
  159.         return  
  160.     else:
  161.         u= rek(u-1,x,a)+a/rek(u,x-1,a)
  162.         x=rek(u,0,a) +
  163. '''
  164.        
  165. print("Zadanie 6:")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement