Code behorend bij OneSecond
# Programma 1: tel een groot aantal keer de # waarde 1 bij een getal op. import time t0 = time.process_time() HERH = 7400000 som = 0 for i in range(0, HERH): som += 1 t1 = time.process_time() print("Aantal secondes rekentijd", t1-t0)
# Programma 2: product, een groot aantal # keer vermenigvuldigen met 1 import time t0 = time.process_time() HERH = 7400000 prod = 1 for i in range(0, HERH): prod *= 1 t1 = time.process_time() print("Aantal secondes rekentijd", t1-t0)
# Programma 3: product, een groot aantal # keer vermenigvuldigen met 2 import time import math t0 = time.process_time() HERH = 200000 prod = 1 for i in range(0, HERH): prod *= 2 t1 = time.process_time() print("Aantal secondes rekentijd", t1-t0) print("Aantal cijfers macht van twee", \ math.ceil(math.log(prod,10)))
# Programma 4: rechtstreeks uitrekenen van # macht van 2 import time import math t0 = time.process_time() EXP = 230000 macht = 2**EXP t1 = time.process_time() print("Aantal secondes rekentijd", t1-t0) print("Aantal cijfers macht van twee:", \ math.ceil(math.log(macht,10)))
# Programma 5: rechtstreeks uitrekenen van # machten van grondtallen import time import matplotlib.pyplot as plt EXP = 500000 Tijden = [] Xset = range(2,33) for grondtal in Xset: t0 = time.process_time() macht = grondtal**EXP t1 = time.process_time() Tijden.append(t1-t0) plt.scatter(Xset, Tijden, \ label='Aantal secondes rekentijd') plt.title('Tijden uitgezet \ tegen grondtal') plt.legend() plt.show()
# Programma 6: som van kwadraten import time import math t0 = time.process_time() HERH = 4000000 som = 0 for i in range(0, HERH): som += i*i t1 = time.process_time() print("Aantal secondes rekentijd", t1-t0) print("Aantal cijfers van de som", \ math.ceil(math.log(som,10)))
# Programma 7: berekenen van faculteiten import time import math t0 = time.process_time() HERH = 53000 prod = 1 for i in range(1, HERH+1): prod *= i t1 = time.process_time() print("Aantal secondes rekentijd", t1-t0) print("Aantal cijfers van de \ faculteit", \ math.ceil(math.log(prod,10)))
# Programma 8: Rij van Fibonacci import time import math t0 = time.process_time() HERH = 240000 a = 0 b = 1 for i in range(0,HERH): c = a + b a = b b = c t1 = time.process_time() print("Aantal secondes rekentijd", t1-t0) print("Cijfers laatste fibonaccigetal", \ math.ceil(math.log(b, 10)))
# Programma 9: Exponentiële rij van # Fibonacci import time import math import matplotlib.pyplot as plt Tijden = [] Lengten = [] t0 = time.process_time() HERH = 33 a = 0 b = 1 Xset = range(0, HERH) for i in Xset: c = a * b + 1 a = b b = c Tijden.append(math.log( \ time.process_time()-t0,10)) if b > 1: Lengten.append(math.log( \ math.ceil(math.log(b,10)),10)) else: Lengten.append(0) plt.scatter(Xset, Lengten, \ label='Log(aantal cijfers)') plt.scatter(Xset, Tijden, \ label='Log(totale tijd in seconden)') plt.title('Totale tijd en aantal \ cijfers') plt.legend() plt.show() t1=time.process_time() print("Aantal secondes rekentijd", t1-t0)