def check_cnr_nncat_p123(p_result_list, c_p_cat):

	#1) create 1 dictionary to count cnr vs nncat
	#2) determine cnr from result list
	#3) determine nncat from result list
	#4) populate
	#5) i24 = 0.1984, i12 = 0.2314, i6 = 3.7037, i4 = 2.7777, i1 = 100

	return_p_dict = {}
		# create a dict to count cnr vs nncat
	n_cat_value = {"i24":0.1984, "i12":0.2314, "i6":3.7037, "i4":2.7777, "i1":100}

	for i in range(10):
		for each in ["i24", "i12", "i6", "i4", "i1"]:
			key = str(i) + each
			return_p_dict[key] = 0

	# ['439516', '4030', '4304', '7899'], ['439616', '8414', '8575', '8339'],
	p_counter = 0    # use for looping the p_result_list
	while p_counter < (len(p_result_list) - 1):
		cnr = str(p_result_list[p_counter][c_p_cat][0])
		next_num = (p_result_list[p_counter + 1][1:])
		for each in next_num:
			next_num_cat = check_num_cat(each)
			nn_cat_key = "i" + str(next_num_cat)
			#nn_cat_key_value = n_cat_value[nn_cat_key]
			key = cnr + nn_cat_key
			if key in return_p_dict:
				return_p_dict[key] += 1
		p_counter += 1
	return return_p_dict
def check_cnr_nncat_single_p_cat(p_result_list):

	#1) create 1 dictionary to count cnr vs nncat
	#2) determine cnr from result list
	#3) determine nncat from result list
	#4) populate
	#5) i24 = 0.1984, i12 = 0.2314, i6 = 3.7037, i4 = 2.7777, i1 = 100

	return_p_dict = {}
		# create a dict to count cnr vs nncat
	n_cat_value = {"i24":0.1984, "i12":0.2314, "i6":3.7037, "i4":2.7777, "i1":100}

	for i in range(10):
		for each in ["i24", "i12", "i6", "i4", "i1"]:
			key = str(i) + each
			return_p_dict[key] = 0

	p_counter = 0    # use for looping the p_result_list
	while p_counter < (len(p_result_list) - 1):
		cnr = str(p_result_list[p_counter][0])
		next_num = (p_result_list[p_counter + 1])
		next_num_cat = check_num_cat(next_num)
		nn_cat_key = "i" + str(next_num_cat)
		nn_cat_key_value = n_cat_value[nn_cat_key]
		key = cnr + nn_cat_key
		if key in return_p_dict:
			return_p_dict[key] += 1
		p_counter += 1
	return return_p_dict
Example #3
0
def df_na_4d(input_list):
    # input: a list of str 4d num
    # output: a dict data to build a df
    # pass each element in list1 into na check modules and norm score modules
    num_sum_ls = []
    num_range_ls = []
    num_cat_ls = []
    norm_num_sum = []
    norm_num_cat = []
    norm_total = []
    for each in input_list:
        n_sum = na.check_num_sum(each)
        n_range = na.check_num_range(each)
        n_cat = na.check_num_cat(each)
        norm_numsum = round(na.calc_norm_num_sum(n_sum),
                            6)  # round float to 6 decimals
        norm_numcat = round(na.calc_norm_num_cat(n_cat), 6)

        num_sum_ls.append(n_sum)
        num_range_ls.append(n_range)
        num_cat_ls.append(n_cat)
        norm_num_sum.append(norm_numsum)
        norm_num_cat.append(norm_numcat)
        norm_total.append(round(norm_numsum + norm_numcat, 6))
    df_key = [
        "4D_Num", "num-cat", "num-range", "num-sum", "norm-score-cat",
        "norm-score-sum", "norm-score-total"
    ]
    p1_dict_data = {
        df_key[0]: input_list,
        df_key[1]: num_cat_ls,
        df_key[2]: num_range_ls,
        df_key[3]: num_sum_ls,
        df_key[4]: norm_num_cat,
        df_key[5]: norm_num_sum,
        df_key[6]: norm_total
    }

    return p1_dict_data
Example #4
0
import num_analysis as na

# na.check_num_sum()
# na.check_num_cat()
# na.check_num_range()

all_num = na.gen_num()

all_num_pd_list = []  #list containing data for constructind pd df
#[['1212', 22, 1, 6], ['1213', 12, 1, 7],...]

df_columns = ["4D_num", "num_cat", "num_range", "num_sum", "num_score"]

for each_num in all_num:
    num_str = each_num
    num_cat = na.check_num_cat(each_num)
    num_range = na.check_num_range(each_num)
    num_sum = na.check_num_sum(each_num)

    norm_sum = na.calc_norm_num_sum(num_sum)
    norm_cat = na.calc_norm_num_cat(num_cat)
    num_score = round((norm_sum + norm_cat), 6)

    each_num_list = [num_str, num_cat, num_range, num_sum, num_score]
    all_num_pd_list.append(each_num_list)

df = pd.DataFrame(all_num_pd_list, columns=df_columns)
#df containing all num
# 4D_num : num_cat : num_range : num_sum

df_num_score = df[["4D_num", "num_score"]]
def analyze_num_bought(num_bought):

        
    ## ========== WEB PARSING STAGE ========== ##
    start = "2015/08/01"
    end = "2015/08/31"
    print "Getting winnings data: " + start + " - " + end

    raw_result = get_data(start, end)

    combined_result = combine(raw_result)

    i24 = num_cat_sort_module.get_i24(combined_result)
    i12 = num_cat_sort_module.get_i12(combined_result)
    i6 = num_cat_sort_module.get_i6(combined_result)
    i4 = num_cat_sort_module.get_i4(combined_result)



    ## ========== CALCULATE THE NUM OF DRAW WITHIN STIPULATED RANGE ==========#

    draw_count = 0
    for each_draw in combined_result:
        draw_count += each_draw[3]

    ## ========== GET WINNING FOR EACH NUM ========== ##

    i24_num_winning = {}
    for each_draw in i24:
        num = each_draw[0]
        amount = prize_calc.i24_prize_calc(each_draw)

        if num in i24_num_winning:
            i24_num_winning[num] += amount
        else:
            i24_num_winning[num] = amount

    i12_num_winning = {}
    for each_draw in i12:
        num = each_draw[0]
        amount = prize_calc.i12_prize_calc(each_draw)

        if num in i12_num_winning:
            i12_num_winning[num] += amount
        else:
            i12_num_winning[num] = amount
    
    i6_num_winning = {}
    for each_draw in i6:
        num = each_draw[0]
        amount = prize_calc.i6_prize_calc(each_draw)

        if num in i6_num_winning:
            i6_num_winning[num] += amount
        else:
            i6_num_winning[num] = amount

    i4_num_winning = {}
    for each_draw in i4:
        num = each_draw[0]
        amount = prize_calc.i4_prize_calc(each_draw)

        if num in i4_num_winning:
            i4_num_winning[num] += amount
        else:
            i4_num_winning[num] = amount

    ## ========== CHECK NUM-WINNING DICT AGAINST GIVEN NUM LIST ========== ##

    num_hit = []    #list of num that hit
    total_winning = 0        # store total winning
    all_num_cat_winning = {24:i24_num_winning,12:i12_num_winning,6:i6_num_winning,4:i4_num_winning}
            #dict mapping each num_cat to its winning
    
    for each_num in num_bought:
        each_num_perm = gen_perm(each_num)    # generate all possible permutations for num bought
        num_cat = check_num_cat(each_num)    
        num_winning = all_num_cat_winning[num_cat]
        for each_perm in each_num_perm:
            str_each_num = str(each_perm)
            if str_each_num in num_winning:
                total_winning += num_winning[str_each_num]
                new = [str_each_num, num_winning[str_each_num]]
                num_hit.append(new)

    sorted_num_hit = sorted(num_hit, key=getKey, reverse=True)

    return_lst = [total_winning, draw_count, sorted_num_hit]

    return return_lst