Exemple #1
0
 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)
Exemple #2
0
    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
Exemple #4
0
 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(