tmp = summatory_list[i] - summatory_list[i - 1] mobi_or_liouvi_list.append(tmp) return mobi_or_liouvi_list # =============================================================================================== if __name__=='__main__': target_num, factor_list_option, sort_option = mert_parse_arguments_with_sort_option() if(factor_list_option != 1) and (factor_list_option != 3): print 'factor_list_option only support 1 or 3 at this moment.' # sys.exit(0) accumulated_parity_his, total_cnt = read_mert_list_from_file(target_num, factor_list_option) # save mobi_list, because other function will need it. if(g_TRUE_PRIME == factor_list_option): # get mobi_list from accumulated_parity_his mobi_list = get_mobi_or_liouvi_from_summatory(accumulated_parity_his) # For small dataset, display all of them on screen. For large dataset, just display length of the list. if(len(mobi_list) <= 1000): print 'mobi_list = ', mobi_list else: print 'len(mobi_list) = ', len(mobi_list) file_name = 'outputs_mert\\mobi_upto_%d.txt'%(target_num) write_1d_data_list_to_file(file_name, mobi_list)
# a recursive formula for mert, mert(n) only depends on the value of mert and mobi upto sqrt(n) # M(x) = 2*M(sqrt(x)) - sum(mobi(i)*mobi(j)*[x/i*j]) (where, i, j <= sqrt(x)) # # Note_1: This formula maybe related to the formula as mert_recur_model.py import matplotlib.pyplot as plt import numpy as np from read_write_a_list_to_file import read_1d_data_list_from_file from read_write_mert_list_to_file import read_mert_list_from_file target_num = 100000 factor_list_option = 1 # read mert_list mert_list, total_cnt = read_mert_list_from_file(target_num, factor_list_option) # target_num = 200000 file_name = 'outputs_mert\\mobi_upto_%d.txt'%(target_num) mobi_list = read_1d_data_list_from_file(file_name) # a recursive formula for mert, mert(n) only depends on the value of mert and mobi upto sqrt(n) # M(x) = 2*M(sqrt(x)) - sum(mobi(i)*mobi(j)*[x/i*j]) (where, i, j <= sqrt(x)) def mert_recur_2(n): sqrt_n = int(np.sqrt(n)) mert_sqrt_n = mert_list[sqrt_n - 1] tmp_sum = 0 for i in range(1, sqrt_n + 1):