def main(): all_docs = get_docs(NUMBER_OF_DOCS) monte_carlo = MonteCarlo(all_docs, p=.9, N=100, epsilon=.1) comparison_counter = 0 try: print(f'Comparisons: {comparison_counter}', end='\r') while not monte_carlo.all_same: pair = monte_carlo.next_pair() if PERCENT_CORRECT > random.random(): if pair[0] > pair[1]: monte_carlo.compare(pair, True) else: monte_carlo.compare(pair, False) else: if pair[0] > pair[1]: monte_carlo.compare(pair, False) else: monte_carlo.compare(pair, True) comparison_counter += 1 print(f'Comparisons: {comparison_counter}', end='\r') # pprint(pair) # print(monte_carlo.N_array) except KeyboardInterrupt: print(monte_carlo.get_sorted()) exit() sorted_list = monte_carlo.get_sorted() distances = [] for i in range(0, NUMBER_OF_DOCS): all_docs = monte_carlo.get_sorted() try: distances.append(abs((i) - all_docs[i])) except IndexError: print(f'i={i}') print(monte_carlo.get_sorted()) print(f'Number of docs: {NUMBER_OF_DOCS}\n' f'Comparisons: {comparison_counter}\n' f'Average error: {statistics.mean(distances)}\n' f'SD of errors: {statistics.stdev(distances)}\n' f'Max error: {max(distances)}')