def __add__(self, RN): #定义加法 if (isinstance(RN, int)): RN = Rational(RN) # RN_gcd = MY_math.CalGCD(self.numer,self.denom) RN_lcm = MY_math.CalLCM(self.denom, RN.denom) return Rational((self.numer * RN_lcm // self.denom + RN.numer * RN_lcm // RN.denom), RN_lcm)
def __init__(self, N1, N2=1): if (not isinstance(N1, int) or not isinstance(N2, int)): raise ValueError('有理数的分子和分母都必须为整数!') if (N2 == 0): raise ZeroDivisionError('分母不能为零!') RN_GCD = MY_math.CalGCD(N1, N2) self.numer = N1 // RN_GCD self.denom = N2 // RN_GCD
def initTableParameter(): # 游戏牌初始化 GamePokersList = [] GameColumn = 8 TotalPokers = CardsGame.shuffer(CardsGame.initPokerCards()) # 进行全部扑克牌初始化分组 grouplen = int(len(TotalPokers) / GameColumn) StartPostion = 0 for i in range(GameColumn): CardsGroup = TotalPokers[StartPostion:StartPostion + grouplen] StartPostion = StartPostion + grouplen GamePokersList.append(CardsGroup[:]) RestPokers = TotalPokers[StartPostion:] GroupIndex = list(MY_math.RandomFetch(GameColumn - 1, len(RestPokers))) # print(GroupIndex) for i in range(len(RestPokers)): GamePokersList[GroupIndex[i]].append(RestPokers[i]) return GamePokersList
def __sub__(self, RN): #定义减法 if (isinstance(RN, int)): RN = Rational(RN) RN_lcm = MY_math.CalLCM(self.denom, RN.denom) return Rational((self.numer * int(RN_lcm / self.denom) - RN.numer * int(RN_lcm / RN.denom)), RN_lcm)
except ValueError as e: raise('参数错误:%s -->输入参数必须为正整数或能转换为正整数的字符串') if(n <= 0): return False for i in range(int(math.sqrt(n))+1): if(i * i == n): return True return False num_list = [x for x in range(1,19)] fullsquare_list = [] result_list = [] start_time = time.time() print('==== 开始计算 ==== @ %s' %(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time)))) for alist in MY_math.fetch_in_list(num_list,2): if(if_fullsquare(alist[0] + alist[1])): fullsquare_list.append((alist[0],alist[1])) # print(len(fullsquare_list)) # print(fullsquare_list) # print(MY_math.combination(18,9)) for alist in MY_math.fetch_in_list(fullsquare_list,9): # print(alist) one_list = [] for atuple in alist: one_list.append(atuple[0]) one_list.append(atuple[1]) print(one_list) if(sorted(one_list) == num_list):
operator_str = '+-*/' equal_num = 100 num_list = [] #用于判断生成的数字切分序列是否重复 result_list = [] end_count = 0 start_time = time.time() # cal_count = 1 str_length = len(init_str) print('=========== Starting Calculation @ %s ===========' % (time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time)))) operator_list = [] # 初始化所有可能的操作符序列 print('============开始初始化所有可能的操作符序列==============') for i in range(1, len(init_str)): # -----> 调用序列遍历函数来生成所有可能的操作符组合operator_list operator_list.append(MY_math.through_in_list(operator_str, i)) print('============操作符序列初始化完成==============') while (len(result_list) < 100): step_num = 0 split_list = [] # operator_list = [] # -----> 使用随机数来生成对数字的切分序列split_list while (step_num < str_length): fragment = step_num + random.randint(1, str_length - 1) split_list.append(init_str[step_num:fragment]) step_num = fragment if (split_list not in num_list): #重复序列不再计算,以提高计算效率
# -*- coding: utf-8 -*- from LearnModule import String_func from LearnModule import MY_math import random # =================生成所有规则可能性================ code_list = ['A','B','C','D','E','F'] chess_list = MY_math.array_in_list(code_list,4) # =================随机取出其中一种可能性================ index_num = random.randint(0,len(chess_list)) # print(chess_list[index_num]) # =================游戏规则运算================ # =================#颜色不匹配,判为XX;颜色对,位置不对,判为BK;颜色和位置都对,判为WH step_num = 0 result_list = ['XX','XX','XX','XX'] win_step = 12 while(True): input_chess = [] step_num = step_num + 1 print('请在(A,B,C,D,E,F)任输入一个做为你的棋子 !') for i in range(1,5): onechess = input('<--第 %d 步,请输入第 %d 棋子 >>> ' %(step_num,i)).upper() input_chess.append(onechess) # if(onechess == chess_list[index_num][i-1]): # result_list[i-1] = 'WH' # 判断游戏规则 for i in range(4):
# print(aset.intersection(bset)) # print(aset.union(bset)) # print(aset.difference(bset)) # print(aset.symmetric_difference(bset)) # # aset.add('56') # # print(aset) # # print(aset.remove('56'),aset) # alist = [x for x in range(6)] # four_combined = set() result_combined = [] for A_num in alist: for B_num in alist: for C_num in alist: for D_num in alist: four_combined = set([A_num, B_num, C_num, D_num]) if (len(four_combined) == 4 and four_combined not in result_combined): result_combined.append(four_combined) for nlist in result_combined: print(nlist) print(len(result_combined), MY_math.combination(len(alist), 4)) # # # aset = [set([1,2,3,4])] # # bset = set([3,2,1,4]) # # print({3,4,2,1} in aset)
ABpatient.diagResult = 'UnKnown' # breast_patients.dataOutput() breastPatientList.append(ABpatient) for ABBpatient in breastPatientList: ABBpatient.dataOutput() # 随机选取400组做为训练语料,剩下的做为测试语料 TrainingNum = 400 AllCount = len(breastPatientList) #保证总数据集比训练数据集要大 while(AllCount - 1 <= TrainingNum): TrainingNum = TrainingNum / 2 TrainingIndexSet = MY_math.RandomFetch(AllCount - 1 ,TrainingNum) TestIndexSet = set(range(AllCount)).difference(TrainingIndexSet) # print(TrainingIndexSet) # print(TestIndexSet) Good_DiagData = [] #学习数据中的良性数据集 Bad_DiagData = [] #学习数据中的恶性数据集 for i in TrainingIndexSet: if(breastPatientList[i].diagResult == 'Good'): Good_DiagData.append(breastPatientList[i]) elif(breastPatientList[i].diagResult == 'Bad'): Bad_DiagData.append(breastPatientList[i]) # breastPatientList[i].dataOutput()
All_pokers.append(one_poker) # all_showhand = MY_math.combination(All_pokers,5) #生成所有梭哈牌面,并输出到showhand_pokers.dat文件中 with open('C:/Users/flyingauraHome/Desktop/showhand_pokers.dat', mode='w') as outfile: icount = 0 start_time = time.time() print(('<------Showhand Pokers Calculating Start : %s ------>' % time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time)))) outfile.write('<------Showhand Pokers Calculating Start : %s ------>\n' % time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time))) #记录计算开始时间 for onehand in MY_math.fetch_in_list(All_pokers, 5): #引用组合函数进行计算 # print('<------ 开始写文件:%s ------>' %time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))) icount = icount + 1 for onepoker in onehand: outfile.write( '[%s(%d),%s]\t' % (onepoker.Value_show(), onepoker.Pvalue, onepoker.Pflower)) outfile.write('\n') end_time = time.time() outfile.write( '<------Showhand Pokers %d kinds, Calculating END : %s used time %f seconds------>' % (icount, time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(end_time)), end_time - start_time)) print(