def prob3():
    #problem 3
    print "problem 3"
    A = rand(1000, 1000)
    number = 100
    tm = ti("A.reshape(A.size)", setup="from __main__ import A", number=number)
    print "A.reshape(A.size) executed ", number, " times in ", tm, " seconds."
    number = 100
    tm = ti("A.flatten()", setup="from __main__ import A", number=number)
    print "A.flatten() executed ", number, " times in ", tm, " seconds."
    number = ti("A.reshape((1,A.size))",
                setup="from __main__ import A",
                number=number)
    print "A.reshape((1,A.size)) executed ", number, " times in ", tm, " seconds."

    #part 2 of problem 3
    print "the difference is that np.vstack(A) returns a new array"
    print "while A.T returns a view"
    print "A.T is much faster"
    A = rand(1, 1000000)
    number = 500
    tm = ti("np.vstack(A)",
            setup="import numpy as np; from __main__ import A",
            number=number)
    print "np.vstack(A) executed ", number, " times in ", tm, " seconds."
    number = 500
    tm = ti("A.T", setup="from __main__ import A", number=number)
    print "A.T executed ", number, " times in ", tm, " seconds."
Exemple #2
0
def time(sizes):
    t1 = []
    t2 = []
    t3 = []
    t4 = []
    for size in sizes:
        A = rand(size, 10)
        B = rand(size, 10)
        t1.append(
            ti("dist1(A, B)",
               setup="from __main__ import dist1, A, B",
               number=10))
        t2.append(
            ti("dist2(A, B)",
               setup="from __main__ import dist2, A, B",
               number=10))
        t3.append(
            ti("dist3(A, B)",
               setup="from __main__ import dist3, A, B",
               number=10))
        t4.append(
            ti("dist4(A, B)",
               setup="from __main__ import dist4, A, B",
               number=10))
        print size
    times = np.empty((5, len(sizes)))
    times[0] = sizes
    times[1] = t1
    times[2] = t2
    times[3] = t3
    times[4] = t4
    np.save("times.npy", times)
def ltest2():
    start = ti(number=1000)
    l = []
    for i in range(1000):
        l.append(i)
    end = ti(number=1000)

    return start - end
def ltest1():
    start = ti(number=1000)
    l = []
    for i in range(1000):
        l = l + [i]
    end = ti(number=1000)

    return start - end
Exemple #5
0
def RepeatingEvenList(aList):
    s = ti(number=10000)

    res = 0
    for i in aList:
        res ^= i

    e = ti(number=10000)

    return res, s - e
def prob1():
    k = 200
    A = [range(i, i+k) for i in range(0, k**2, k)]
    number = 5
    print "problem 1"
    tm = ti("arrmul(A,A)", setup="from __main__ import A, arrmul", number=number)
    print "arrmul(A,A) executed ", number, " times in ", tm, " seconds."
    A = np.array(A)
    number = 5
    tm = ti("np.dot(A,A)", setup="import numpy as np; from __main__ import A", number=number)
    print "np.dot(A,A) executed ", number, " times in ", tm, " seconds."
def array_vs_list():
    k = 200
    A = [range(i, i+k) for i in range(0, k**2, k)]
    number = 5
    print "problem 1"
    tm = ti("arrmul(A,A)", setup="from __main__ import A, arrmul", number=number)
    print "arrmul(A,A) executed ", number, " times in ", tm, " seconds."
    A = np.array(A)
    number = 5
    tm = ti("np.dot(A,A)", setup="import numpy as np; from __main__ import A", number=number)
    print "np.dot(A,A) executed ", number, " times in ", tm, " seconds."
def time(sizes):
    t1 = []
    t2 = []
    t3 = []
    t4 = []
    for size in sizes:
        A = rand(size, 10)
        B = rand(size, 10)
        t1.append(ti("dist1(A, B)", setup="from __main__ import dist1, A, B", number=10))
        t2.append(ti("dist2(A, B)", setup="from __main__ import dist2, A, B", number=10))
        t3.append(ti("dist3(A, B)", setup="from __main__ import dist3, A, B", number=10))
        t4.append(ti("dist4(A, B)", setup="from __main__ import dist4, A, B", number=10))
        print size
    times = np.empty((5, len(sizes)))
    times[0] = sizes
    times[1] = t1
    times[2] = t2
    times[3] = t3
    times[4] = t4
    np.save("times.npy", times)
Exemple #9
0
def UsingDict(aList):

    s = ti(number=10000)

    #d={i: aList.count(i) for i in aList }

    d = {}

    for i in aList:
        if i in d:
            d[i] += 1
        else:
            d[i] = 1

    res = 0
    for k, v in d.items():
        if v == 1:
            res = k

    e = ti(number=10000)

    return res, s - e
def prob3():
    A = rand(1000,1000)
    number = 100
    tm = ti("A.reshape(A.size)", setup="from __main__ import A", number=number)
    print "A.reshape(A.size) executed ", number, " times in ", tm, " seconds."
    number = 100
    tm = ti("A.flatten()", setup="from __main__ import A", number=number)
    print "A.flatten() executed ", number, " times in ", tm, " seconds."
    number = ti("A.reshape((1,A.size))", setup="from __main__ import A", number=number)
    print "A.reshape((1,A.size)) executed ", number, " times in ", tm, " seconds."
    
    #part 2 of problem 3
    print "the difference is that np.vstack(A) returns a new array"
    print "while A.T returns a view"
    print "A.T is much faster"
    A = rand(1,1000000)
    number = 500
    tm = ti("np.vstack(A)", setup="import numpy as np; from __main__ import A", number=number)
    print "np.vstack(A) executed ", number, " times in ", tm, " seconds."
    number = 500
    tm = ti("A.T", setup="from __main__ import A", number=number)
    print "A.T executed ", number, " times in ", tm, " seconds."
Exemple #11
0
from kivy.uix.widget import Widget
from random import randint
import timeit.timeit as ti
from functools import partial
import utilfuncs import circle_collide as cc

if __name__ == '__main__':
	t1 = #[Widget(pos=(randint(0, 800), randint(0, 600))
		  #for i in range(2)]
	ti(partial(cc, t1[0], t1[1]))
	ti(t1[0].collide_widget())
    i = 2
    num = [0] * (n + 1)
    p = []
    while (i * i <= n):
        j = i
        while (j * i <= n):
            num[i * j] = 1
            j += 1
        i += 1
    for i in xrange(2, n + 1):
        if num[i] == 0:
            p.append(i)
    return p


def factorize(n):
    sq = int(n**0.5)
    p = seive(sq)
    c = Counter()
    for prime in p:
        while (n % prime == 0):
            n /= prime
            c[prime] += 1
    return c


#print factorize(10000)
print ti("factorize(1213231313131)",
         setup="from __main__ import factorize",
         number=1)
def ltest4():
    start = ti(number=1000)
    l = list(range(1000))
    end = ti(number=1000)

    return start - end
def smaller_than_3(x):
    if x < 3:
        return True
    else:
        return False


grp = groupby(a, smaller_than_3)
print("groupby fun:\n")
#print(list(grp))

for key, value in grp:
    print(key, list(value))

count = 0
start = ti()
for i in cycle(a):
    print(i)
    count += 1

    if count == 10:
        break
end = ti()
print("time taken for cycle fun: " + str(end - start))

start = ti()
for i in repeat(5, 10):
    print(i)

end = ti()
print("time taken for cycle fun: " + str(end - start))
def ltest3():
    start = ti(number=1000)
    l = [i for i in range(1000)]
    end = ti(number=1000)

    return start - end
Exemple #16
0
"""
Lattice paths
Submit

 Show HTML problem content 
Problem 15
Starting in the top left corner of a 2×2 grid, and only being able to move to the right and down, there are exactly 6 routes to the bottom right corner.


How many such routes are there through a 20×20 grid?


Answer:  137846528820
Completed on Sun, 8 Jul 2018, 15:46
"""
import math
from timeit import default_timer as ti
import os.path as op


# Solution 1
def latticePaths(n, m):
    return int(math.factorial(n+m) / (math.factorial(n)*math.factorial(m)))

t11 = ti()
print(f"The answer to Project Euler, {op.basename(__file__)[:-3]} is: " + str(latticePaths(20, 20)))
t12 = ti()
print("Time lapsed for solution number 1: " + str((t12-t11)*10**6) + u'\u03BC' + "s")
                      50000, 100000, 500000, 1000000,
                      5000000, 10000000, 15000000, 20000000,
                      25000000])

rowdot_sizes = np.array([10, 50, 100, 200, 300, 400, 500,
                         600, 700, 800, 900, 1000, 1100,
                         1200, 1300, 1400, 1500, 1600])

dot_times = np.empty((len(dot_sizes),3))

rowdot_times = np.empty((len(rowdot_sizes),3))

for n, times in zip(dot_sizes, dot_times):
    A = rand(n)
    B = rand(n)
    times[0] = ti("pydot(A, B)", setup="from __main__ import A, B, pydot", number=5) / 5.
    times[1] = ti("cydot(A, B)", setup="from __main__ import A, B, cydot", number=500) / 500.
    times[2] = ti("A.dot(B)", setup="from __main__ import A, B", number = 500) / 500.

for n, times in zip(rowdot_sizes, rowdot_times):
    A = rand(n, 3)
    times[0] = ti("pyrowdot(A)", setup="from __main__ import A, pyrowdot", number=1)
    times[1] = ti("cyrowdot(A)", setup="from __main__ import A, cyrowdot", number=10) / 10.
    times[2] = ti("A.dot(A.T)", setup="from __main__ import A", number=10) / 10.

# plot dot product results
ax = plt.subplot(1,1,1)
p1, = plt.plot(dot_sizes, np.log(dot_times[:,0]), label="Python times")
p2, = plt.plot(dot_sizes, np.log(dot_times[:,1]), label="Cython times")
p3, = plt.plot(dot_sizes, np.log(dot_times[:,2]), label="Numpy with MKL times")
handles, labels = ax.get_legend_handles_labels()
    10000000, 15000000, 20000000, 25000000
])

rowdot_sizes = np.array([
    10, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200,
    1300, 1400, 1500, 1600
])

dot_times = np.empty((len(dot_sizes), 3))

rowdot_times = np.empty((len(rowdot_sizes), 3))

for n, times in zip(dot_sizes, dot_times):
    A = rand(n)
    B = rand(n)
    times[0] = ti(
        "pydot(A, B)", setup="from __main__ import A, B, pydot", number=5) / 5.
    times[1] = ti("cydot(A, B)",
                  setup="from __main__ import A, B, cydot",
                  number=500) / 500.
    times[2] = ti("A.dot(B)", setup="from __main__ import A, B",
                  number=500) / 500.

for n, times in zip(rowdot_sizes, rowdot_times):
    A = rand(n, 3)
    times[0] = ti("pyrowdot(A)",
                  setup="from __main__ import A, pyrowdot",
                  number=1)
    times[1] = ti("cyrowdot(A)",
                  setup="from __main__ import A, cyrowdot",
                  number=10) / 10.
    times[2] = ti("A.dot(A.T)", setup="from __main__ import A",
Exemple #19
0
from timeit import default_timer as ti

my_list = ['abc'] * 10

start = ti()
my_string = ''.join(my_list)

stop = ti()
print(stop - start)
print(my_string)