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() |