Пример #1
0
def generate_n_lists(n, m):
    start = ts()
    output_lists = []
    x = 107
    for i in range(n):
        temp_list = []
        for j in range(m):
            x = (x * 37 + 103) % 1013
            temp_list.append(1)
        output_lists.append(temp_list)
    end = ts()
    delta(start, end)
    return output_lists
Пример #2
0
# print(gen_lists(10, 5))

def find_pattern_exact(line: List[int], pattern: List[int]) -> int:
    s_line = ''
    for x in line:
        s_line += str(x)
    s_pattern = ''
    for x in pattern:
        s_pattern += str(x)

    idx = s_line.find(s_pattern)  # tu trzeba sprawdzić czy rzeczywiście szukanie podnapisów w pythonie jest szybkie...
    if idx == -1:
        return 0
    # teraz trzeba sprawdzić czy tylko ten pattern jest tutaj...
    rest = s_line[:idx] + s_line[idx + len(pattern):]
    if int(rest) == 0:
        return 1
    else:
        return 0


st = ts()
# w = gen_lists(10 ** 5, 20)
print(find_pattern_exact([0, 0, 0, 1, 1, 0, 0], [1, 1]))
en = ts()
delta(st, en)

# print('00010'.find('sim_annealing'))
# print(int('00000100'))
Пример #3
0
    return sublen


# [!!!!!!!!!!!!...................]
# ---> O(N * log(N))

letters = 26
LEN = 1600
st = ts()
a = random_string(nsymbols=letters, length=LEN)
b = random_string(nsymbols=letters, length=LEN)
# gg = long(random_string(nsymbols=NS, length=LEN), random_string(nsymbols=NS, length=LEN))
# gg = faster(a, b)
gg = fast_hash_solution(a, b)
ed = ts()
delta(st, ed)

"""
Simple algo, O(N**3)

100     1.571
200     7.853
300     24.333
400     50.992
600     160.7
800     366.106
1600    2631.371
3200    19903

Faster,  N**2 log(N)
1600    12.895