2022年第十四届“华中杯”大学生数学建模挑战赛

2022年第十三届“华中杯”大学生数学建模挑战赛

  为了推广我国高校数学建模实践教学,培养学生的创新意识及运用数学方法和计算机技术解决实际问题的能力,第十四届“华中杯”大学生数学建模挑战赛(以下简称竞赛)将于2022年3月开始。举办竞赛的目的在于激励学生学习数学的积极性,拓展数学及相关学科知识面,提高学生独立分析、建模、求解、应用、写作等综合能力,鼓励广大青年学生学以致用,提升学生对数学科学理论及应用价值的认识,加强数学与经济金融、管理科学、计算机等学科之间的联系,促进教育教学改革,培养学生的创新意识与团队精神。

一、组织单位

主办单位:湖北省工业与应用数学学会

承办单位:泰迪智能科技(武汉)有限公司

协办单位:武汉大学、华中科技大学、华中师范大学、中南财经政法大学、华中农业大学、中国地质大学、武汉理工大学、湖北大学

支持单位:高等教育出版社湖北省教学服务中心、北京大学重庆大数据研究院、杭州同花顺数据开发有限公司、众言科技SPSSPRO

二、竞赛时间安排

报名时间:2022年3月15日—4月29日

比赛时间:2022年4月30日20:00—5月3日20:00

作品评阅:2022年5月5日—5月20日

成绩公示:2022年5月23日—2022年5月29日

成绩发布:2022年5月30日

三、参赛对象

所有普通高校全日制在校生。以队为单位报名参赛,每支参赛队伍不超过3个人(须来自同一个学校)。每支队伍可以指定1名指导老师。
2022年第十四届“华中杯”大学生数学建模挑战赛_第1张图片


class GoBangState():
'''如有问题if you want my model and word'''
'''小编QQ:631183848'''    
    def __init__(self,board, currentPlayer=1, last_move = [0,0]):
        self.board = board   #五子棋棋盘
        self.currentPlayer = currentPlayer  # 执黑还是执白,1是黑,-1是白
        self.last_move = last_move # 上一手棋的位置
 
    def getPossibleActions(self):
        """
        最开始考虑用以下的代码,但是搜索空间实在是太大了
                possibleActions = []
                for i in range(len(self.board)):
                    for j in range(len(self.board[i])):
                        if self.board[i][j] == 0:
                            possibleActions.append(Action(player=self.currentPlayer, x=i, y=j))
                return possibleActions
        """
        # 此处改成在上一手棋周围进行搜索
        possibleActions = []
        search_size = 1
        while len(possibleActions)==0:
            for i in range(self.last_move[0]-search_size,self.last_move[0]+search_size+1):
                for j in range(self.last_move[1]-search_size,self.last_move[1]+search_size+1):
                    if i<0 or j<0 or i>=len(self.board) or j>=len(self.board[i]):
                        continue
                    if self.board[i][j] == 0:
                        possibleActions.append(Action(player=self.currentPlayer, x=i, y=j))
            search_size+=1
        return possibleActions
 
 
 
    def takeAction(self, action):
        newState = deepcopy(self)
        newState.board[action.x][action.y] = action.player
        newState.currentPlayer = self.currentPlayer * -1
        return newState
 
    def isTerminal(self):
        # judge函数引自https://www.jianshu.com/p/cd3805a56585
        flag = judge(self.board)
        if flag!=0:
            return True
        # 要注意无处落子的情况
        for i in range(len(self.board)):
            for j in range(len(self.board[i])):
                if self.board[i][j]==0:
                    return False
        return True
 '''如有问题if you want my model and word'''
'''小编QQ:631183848'''
    def getReward(self):
        flag = judge(self.board)

你可能感兴趣的:(数学建模,华中杯,python)