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
# 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'))
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