'''
Created on Feb 27, 2011

@author: ola
'''
import random,time


def create_word():
    ls = list("etaoins")
    random.shuffle(ls)
    return ''.join(ls)

def create_list(n):
    return [create_word() for i in xrange(0,n)]

def diffA(words):
    return len(set(words))

def diffB(words):
    d = 0
    for i,word in enumerate(words):
        if words[:i].count(word) == 0:
            d += 1
    return d

def time_all(n):
    funcs = [diffA, diffB]
    nums = create_list(n)
    for f in funcs:
        start = time.time()
        diffs = f(nums)
        end = time.time()
        print "n = %d %s diffs = %d time = %4.3f\n" % (n,f,diffs,(end-start))

if __name__ == "__main__":
    time_all(2000)
    time_all(4000)
    time_all(5000)
    time_all(10000)
