View difference between Paste ID: TFnkVxLa and sBVMzYYq
SHOW: | | - or go back to the newest paste.
1
#!/usr/bin/env python
2-
 
2+
#-*- coding: utf-8 -*-
3
4
'''
5
Ciąg Fibonacciego i wzór Bineta
6
7
Wikipedia:
8-
print fib(20)
8+
  opis: 
9
    http://pl.wikipedia.org/wiki/Ciąg_Fibonacciego
10
    http://pl.wikipedia.org/wiki/Ciąg_Fibonacciego#Wzór_Bineta
11
  wzór: 
12-
start = time.time()
12+
    http://upload.wikimedia.org/math/5/7/e/57eaa418ea8df41ac1473eb5430ca6c9.png
13
'''
14
15
import time
16
17
#----------------------------------------- 
18-
print fib(20)
18+
19-
stop = time.time()
19+
20-
print "czas wykonywania:", stop - start
20+
21
    a, b = 0, 1
22
23
    for i in range(n):
24
        a, b = b, a+b
25
26
    return a
27
28
#----------------------------------------- 
29
30
def binet(n):
31
32
    # TODO: obliczenia wedlug podanego wzoru
33
    print 'TODO: obliczenia wedlug podanego wzoru'
34
35
    wynik = 0
36
37
    return wynik
38
39
#----------------------------------------- 
40
41
def czas_fib(n):
42
43
    start = time.time()
44
    fib(n)
45
    stop = time.time()
46
47
    print "czas wykonywania dla fib(%d): %f" % (n, stop - start)
48
49
#----------------------------------------- 
50
51
def czas_binet(n):
52
53
    start = time.time()
54
    binet(n)
55
    stop = time.time()
56
57
    print "czas wykonywania dla binet(%d): %f" % (n, stop - start)
58
59
#----------------------------------------- 
60
61
def czas():
62
    
63
    dane = [0, 1, 10, 15, 1000, 10000]
64
65
    for n in dane:
66
        czas_fib(n)
67
        czas_binet(n)
68
        print # linia odstepu miedzy probami
69
        
70
#----------------------------------------- 
71
72
def test_fib(n, oczekiwany_wynik):
73
74
    print "test fib(%d) == %d :" % (n, oczekiwany_wynik),
75
76
    wynik = fib(n)
77
78
    if wynik == oczekiwany_wynik:
79
        print 'OK'
80
    else:
81
        print '!!', wynik
82
83
#----------------------------------------- 
84
85
def test_binet(n, oczekiwany_wynik):
86
87
    print "test binet(%d) == %d :" % (n, oczekiwany_wynik),
88
89
    wynik = binet(n)
90
91
    if wynik == oczekiwany_wynik:
92
        print 'OK'
93
    else:
94
        print '!!', wynik
95
96
#----------------------------------------- 
97
98
def test():
99
    
100
    dane = [ (0, 0), (1, 1), (2, 1), (3, 2), (4, 3), (10, 55), (15, 610) ]
101
    
102
    for n, oczekiwany in dane:
103
        test_fib(n, oczekiwany)
104
105
    print # linia odstepu miedzy probami
106
    
107
    for n, oczekiwany in dane:
108
        test_binet(n, oczekiwany)
109
110
    print # linia odstepu miedzy probami
111
    
112
#----------------------------------------- 
113
114
test()
115
czas()