BLG与T1谁会赢?python制作预测程序,结果显示,BLG将打败T1

news2024/11/5 23:24:43

决赛预测

2024英雄联盟全球总决赛

2024年英雄联盟全球总决赛,今天晚上(2024年11月2日22点)就要开始了!今年的总决赛的队伍是BLG与T1。当然一些老的lol玩家,现在可能对于lol关注不多,并不清楚这两个队伍。

其实,T1就是原先的SKTtelecom T1与Comcast合并以后得到的新的俱乐部,而现在T1的主力中单仍然是Faker!而BLG则是Bilibili Gaming,也就是哔哩哔哩的俱乐部。今年最为独特的是,时隔11年,又有“全华班”的队伍,进入到了决赛之中,而遇到的中单却是11年前的老对手Faker。

看过比赛的观众会发现,T1在前几场比赛中,几乎是横扫了对手,展现出了非常强大的实力,就现实情况而言,T1绝对是实力非常强大的对手,甚至很多人,都已经开始想“五冠”的事情了,仿佛这个冠军唾手可得,可以说,BLG的处境不容乐观。

至于对于总决赛的结果预测,这也并非是我自己想的,甚至可以说,是老的传统了。在去年2023年的全球总决赛之前,就有各种各样的“预言家”,根据自己的方法,预测了WBG与T1的比赛结果,众说纷纭。当然,自然是有的人预测对了,有的人预测错了。那么今年同样的,在开赛之前,我准备自己制作一个“预测”程序,来对结果进行预测。

 预测方法

要制作预测程序,自然要选择一种预测方法,这次,我要选择的是传统的“梅花易数”的占卜方法。

“梅花”的基本原理是通过“先天八卦数”,进行“起卦”。

然后,通过“卦”,得到卦的五行。

最后,根据五行的生克理论,判断“吉凶祸福”。

这种方法据说是从宋代就已经发明了,距今已经有千年的历史了,因此,接下来,我将通过python编程,还原这种古老的占卜方法,并对2024年英雄联盟全球总决赛的结果,进行预测。

需要注意的是:所有的占卜,预测方法,都是没有任何科学依据的,并不代表真实结果。

 梅花易数

起卦

梅花的起卦方式是多种多样的,因此,在这里我们只选择最传统,最可靠的“年月日时”起卦方法,如下所示

 这种起卦方式有一个缺点,就是每两小时最多预测一次,因为,每2个小时,卦才会变化一次,如果在短时间内进行多次预测,那么所有结果都是相同的,这显然是不可靠的。所以,该方法进行起卦,不能短时间内连续使用。

而这里用的年月日时,是农历,因此我们需要使用python的lunarcalendar库,如果你不了解的话,可以看看之前的文章,lunarcalendar库的使用

根据干支纪年法,今年2024年是“甲辰年”,其中,在“子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥”里面,辰是5,并且每12年,重新计算一轮(其实就是生肖啦)。

年月日时的占卜中,子时的计算通常是一个困难,传统上,子时是一天的开始,但是子时是晚上11点到1点。那么,如果现在是10月1日的晚上11点半,此时,应该算10月1日的子时,还是应该算10月2日的子时呢?

有人认为,如果11点算一天的开始,那么过了11点自然就算是第二天了,因此10月1日的11点半,应该是10月2日。

也有人认为,这种说法是没有道理的,日期更换应该是按照12点来计算,因此,12点以前,应该算10月1日的子时,12点以后,应该算10月2日的子时。

我们这里规定:按照现代的0点进行日期更换,因此,11点半算前一天的子时。

将卦对应到五行

乾是1,五行属金,因此1对应到金。

兑是2,五行属金,因此2对应到金。

离是3,五行属火,因此3对应到火。

震是4,五行属木,因此4对应到木。

巽是5,五行属木,因此5对应到木。

坎是6,五行属水,因此6对应到水。

艮是7,五行属土,因此7对应到土。

坤是8,五行属土,因此8对应到土。

因此,我们得到了对应表:

{1: "金", 2: "金", 3: "火", 4: "木", 5: "木", 6: "水", 7: "土", 8: "土"}

创建卦象

在卦中,有“阳爻”,与“阴爻”,有人说,二进制就是外国人看了我们八卦,才发明出来的。也就是,外国人将阳记做了1,将阴记做了0,因此才有了二进制。

不过,无论外国人看没看过八卦,但是,我们确实可以在程序中用1和0来记录八卦。

hexagram_dict = {
    "111": 1,
    "011": 2,
    "101": 3,
    "001": 4,
    "110": 5,
    "010": 6,
    "100": 7,
    "000": 8
}

取体卦与用卦

包含变爻的是用卦,不包含变爻的是体卦。

换而言之,如果爻是1-3,那么上卦是体卦,下卦是用卦。

如果爻是4-6,那么上卦是用卦,下卦是体卦。

取互卦与变卦

首先,我们将上卦与下卦合并为一个“叠卦”,然后取出其中234,与345,得到2个新卦,就是互卦了。

例如111与000,组合成111000,此时,两个互卦分别是110与100。

至于变卦,要根据动爻,对其取反,也就是将1变为0,将0变为1。

处理五行生克

根据五行生克

金生水,水生木,木生火,火生土,土生金。

金克木,木克土,土克水,水克火,火克金。

同样,我们得到了5种关系:生入,生出,克入,克出,比和

其中,比和是一种同类关系,也就是同样的两个元素就是比和。

根据五行生克得到吉凶

生入是大吉

生出是小凶

克入是大凶

克出是小吉

比和是大吉

因此,我们又得到了一个吉凶表:

fortune_dict = {
    "比和": "大吉",
    "生入": "大吉",
    "生出": "小凶",
    "克入": "大凶",
    "克出": "小吉"
}

python实现

程序实现

import datetime

from lunarcalendar import Converter, Solar

class MeihuaYi:
    hexagram_dict = {
        "111": 1,
        "011": 2,
        "101": 3,
        "001": 4,
        "110": 5,
        "010": 6,
        "100": 7,
        "000": 8
    }

    swapped_hexagram_dict = {value: key for key, value in hexagram_dict.items()}

    def __init__(self):
        pass

    def get_hexagram(self):
        date = datetime.datetime.now()
        solar = Solar(date.year, date.month, date.day)
        lunar = Converter.Solar2Lunar(solar)

        year = (lunar.year - 2019) % 12
        month = lunar.month
        day = lunar.day
        hour = ((date.hour + 1) // 2) % 12 + 1

        up_hexagram = ((year + month + day) % 8) or 8
        down_hexagram = ((year + month + day + hour) % 8) or 8
        yao = ((year + month + day + hour) % 6) or 6

        return (up_hexagram, down_hexagram, yao)

    def to_element(self, hexagram):
        element_dict = {1: "金", 2: "金", 3: "火", 4: "木", 5: "木", 6: "水", 7: "土", 8: "土"}
        return element_dict[hexagram]

    def get_mutual_hexagram(self, up_hexagram, down_hexagram):
        double_hexagram = self.swapped_hexagram_dict[up_hexagram] + self.swapped_hexagram_dict[down_hexagram]
        mutual_hexagram1 = self.hexagram_dict.get(double_hexagram[1:4])
        mutual_hexagram2 = self.hexagram_dict.get(double_hexagram[2:5])
        return (mutual_hexagram1, mutual_hexagram2)


    def get_changing_hexagram(self, up_hexagram, down_hexagram, yao):
        if 1 <= yao <= 3:
            hexagram = self.swapped_hexagram_dict.get(down_hexagram)
        else:
            yao = yao - 3
            hexagram = self.swapped_hexagram_dict.get(up_hexagram)

        if yao == 1:
            index = 2
        elif yao == 2:
            index = 1
        else:
            index = 0

        binary_list = list(hexagram)

        if binary_list[index] == "0":
            binary_list[index] = "1"
        else:
            binary_list[index] = "0"

        changing_hexagram = self.hexagram_dict.get("".join(binary_list))
        return changing_hexagram

    def get_ti_yong_hexagram(self, up_hexagram, down_hexagram, yao):
        if 1 <= yao <= 3:
            return (up_hexagram, down_hexagram)
        else:
            return (down_hexagram, up_hexagram)

    def get_relationship(self, element1, element2):
        generate = {
            "金": "水",
            "水": "木",
            "木": "火",
            "火": "土",
            "土": "金"
        }

        overcome = {
            "金": "木",
            "木": "土",
            "土": "水",
            "水": "火",
            "火": "金"
        }

        if element1 == element2:
            return "比和"
        elif generate[element1] == element2:
            return "生出"
        elif generate[element2] == element1:
            return "生入"
        elif overcome[element1] == element2:
            return "克出"
        elif overcome[element2] == element1:
            return "克入"
        else:
            return "无关"

    def get_good_and_bad(self, relationship):
        fortune_dict = {
            "比和": "大吉",
            "生入": "大吉",
            "生出": "小凶",
            "克入": "大凶",
            "克出": "小吉"
        }

        return fortune_dict[relationship]

    def predict(self):
        # 第零步:询问用户要预测什么?
        question = input("注意:使用需要至少间隔2小时以上!\n今天你要预测什么:")

        # 第一步:根据年月日时起卦
        up_hexagram, down_hexagram, yao = self.get_hexagram()

        # 第二步:划分体用互变
        ti, yong = self.get_ti_yong_hexagram(up_hexagram, down_hexagram, yao)
        hu1, hu2 = self.get_mutual_hexagram(up_hexagram, down_hexagram)
        bian = self.get_changing_hexagram(up_hexagram, down_hexagram, yao)

        # 第三步:根据卦得到五行
        ti_relation = self.to_element(ti)
        yong_relation = self.to_element(yong)
        hu1_relation = self.to_element(hu1)
        hu2_relation = self.to_element(hu2)
        bian_relation = self.to_element(bian)

        # 第四步:根据五行得到生克关系
        start = self.get_relationship(ti_relation, yong_relation)
        process1 = self.get_relationship(ti_relation, hu1_relation)
        process2 = self.get_relationship(ti_relation, hu2_relation)
        result = self.get_relationship(ti_relation, bian_relation)

        # 第五步:根据生克关系得到吉凶
        start_condition = self.get_good_and_bad(start)
        process1_condition = self.get_good_and_bad(process1)
        process2_condition = self.get_good_and_bad(process2)
        result_condition = self.get_good_and_bad(result)

        # 第六步:得出最终结果
        print(f"当前时间是:{datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}")
        print(f"您要问的问题是:{question}")
        print(f"现在的当前状况是:{start_condition}")
        print(f"期间遇到的状况是:{process1_condition},{process2_condition}")
        print(f"最终的结果是:{result_condition}")


if __name__ == "__main__":
    m = MeihuaYi()
    m.predict()

预测结果

运行程序后,得到了预测结果,如下所示:

可以看到,当前的状况是大凶,说明,人们对于BLG没有信心,一边倒的看好T1,认为BLG不能赢,此时T1笑的很开心,认为自己已经要赢了。

但是,在比赛过程中,局势发生了改变,反而变成了吉,说明比赛很顺利,暴打了对手。

最终结果为大吉,显而易见,说明了,BLG取得了最终的胜利。

结论:根据程序的预测结果,BLG可以打败T1,得到今年的冠军!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2230379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI-基本概念-向量、矩阵、张量

1 需求 需求&#xff1a;Tensor、NumPy 区别 需求&#xff1a;向量、矩阵、张量 区别 2 接口 3 示例 4 参考资料 【PyTorch】PyTorch基础知识——张量_pytorch张量-CSDN博客

【笔面试常见题:三门问题】用条件概率、全概率和贝叶斯推导

1. 问题介绍 三门问题&#xff0c;又叫蒙提霍尔问题&#xff08;Monty Hall problem&#xff09;&#xff0c;以下是蒙提霍尔问题的一个著名的叙述&#xff0c;来自Craig F. Whitaker于1990年寄给《展示杂志》&#xff08;Parade Magazine&#xff09;玛丽莲沃斯莎凡特&#x…

Core日志 Nlog

资料 资料 资料 直接在NuGet里面搜索NLog.Web.AspNetCore&#xff0c;然后进行安装即可&#xff0c;

使用form表单的action提交并接收后端返回的消息

使用form表单的action提交表单是同步提交的方式&#xff0c;会跳转页面&#xff0c;所以无法获取后端返回来到消息。这样描述或许没有太大感觉&#xff0c;如果我要通过表单的方式上传文件&#xff0c;并接收后台返回来的响应数据&#xff1b;这样说是不是就感同深受了呢。 1.…

从障碍到流畅:提升远程团队沟通的最佳实践

远程工作模式带来了地理和时间上的灵活性&#xff0c;但同时也引入了一些沟通障碍。这些障碍可能导致信息传递不畅、合作效率低下&#xff0c;甚至影响团队成员之间的关系。解决远程团队的沟通障碍需要一系列综合策略的实施&#xff0c;包括利用高效的技术工具、建立明确的沟通…

鸿蒙进阶篇-Swiper组件的使用

“在科技的浪潮中&#xff0c;鸿蒙操作系统宛如一颗璀璨的新星&#xff0c;引领着创新的方向。作为鸿蒙开天组&#xff0c;今天我们将一同踏上鸿蒙基础的探索之旅&#xff0c;为您揭开这一神奇系统的神秘面纱。” 各位小伙伴们我们又见面了,我就是鸿蒙开天组,下面让我们进入今…

【PTA】4-2 树的同构【数据结构】

给定两棵树 T1​ 和 T2​。如果 T1​ 可以通过若干次左右孩子互换就变成 T2​&#xff0c;则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的&#xff0c;因为我们把其中一棵树的结点A、B、G的左右孩子互换后&#xff0c;就得到另外一棵树。而图2就不是同构的。 图一…

《女巫攻击:潜伏在网络背后的隐秘威胁与防御策略》

目录 引言 一、基本概念 二、攻击机制 三、Sybil攻击类型 1、直接通信 2、间接通信 3、伪造身份 4、盗用身份 5、同时攻击 6、非同时攻击 四、攻击影响 五、防御措施 总结 引言 随着区块链技术和去中心化网络的迅速发展&#xff0c;网络安全问题也愈发引起关注。其…

华为 HCIP-Datacom H12-821 题库 (41)

&#x1f423;博客最下方微信公众号回复题库,领取题库和教学资源 &#x1f424;诚挚欢迎IT交流有兴趣的公众号回复交流群 &#x1f998;公众号会持续更新网络小知识&#x1f63c; 1. 在组播中&#xff0c;&#xff08; &#xff09;模型针对特定源和组的绑定数据流提供服务&…

Day08只出现一次的数字

给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间。 class Solution {public int singleNum…

【linux 多进程并发】0302 Linux下多进程模型的网络服务器架构设计,实时响应多客户端请求

0302 多进程网络服务器架构 ​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 一、概…

vue3+vant实现视频播放(含首次禁止进度条拖拽,视频看完后恢复,保存播放视频进度,刷新及下次进入继续播放,判断视频有无全部看完等)

1、效果图 2、 <div><videocontrolsclass"video_player"ref"videoPlayer":src"videoSrc"timeupdate"handleTimeUpdate"play"onPlay"pause"onPause"ended"onVideoEnded"></video><…

C++设计模式创建型模式———简单工厂模式、工厂方法模式、抽象工厂模式

文章目录 一、引言二、简单工厂模式三、工厂方法模式三、抽象工厂模式四、总结 一、引言 创建一个类对象的传统方式是使用关键字new &#xff0c; 因为用 new 创建的类对象是一个堆对象&#xff0c;可以实现多态。工厂模式通过把创建对象的代码包装起来&#xff0c;实现创建对…

【数据库系统概论】第3章 关系数据库标准语言SQL(二)数据查询(超详细)

目录 一、单表查询 1. 简单的数据查询 &#xff08;1&#xff09;选择表中若干列 &#xff08;2&#xff09;选择表中若干行&#xff08;元祖&#xff09; 2. 聚合函数与分组查询 聚集函数 GROUP BY分组查询 二、联接查询 1、连接概述 2. 内联接&#xff08;INNER JO…

Android Framework AMS(10)广播组件分析-1

该系列文章总纲链接&#xff1a;专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节主要解读应用层广播组件的发送广播和接收处理广播 2个过程&#xff0c;以及从APP层到AMS调用之间的打通。关注思维导图中左上部分即可。 有…

磁盘空间不足导致postgreSQL启动失败

背景&#xff1a; 智慧庭审平台安装了ivr/xvr等vr应用后&#xff0c;磁盘空间不足导致postgreSQL数据库一直重启 排查 到服务器下使用 systemctl status hik.postgresql96linux64.rdbms.1.service 查看进程报错信息 这次报的是 FATAL: could not write lock file "po…

C++进阶:C++11的新特性

✨✨所属专栏&#xff1a;C✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ C11的发展历史 2011年&#xff0c;C标准委员会发布了C11标准&#xff0c;这是C的一次巨大飞跃&#xff0c;引入了许多重要的新特性&#xff0c;如智能指针、lambda表达式、并发编程支持等。这一版本的发布对C社…

LongVU :Meta AI 的解锁长视频理解模型,利用自适应时空压缩技术彻底改变视频理解方式

Meta AI在视频理解方面取得了令人瞩目的里程碑式成就&#xff0c;推出了LongVU&#xff0c;这是一种开创性的模型&#xff0c;能够理解以前对人工智能系统来说具有挑战性的长视频。 研究论文 "LongVU&#xff1a;用于长视频语言理解的时空自适应压缩 "提出了一种革命…

Ubuntu 22.04安装部署

一、部署环境 表 1‑1 环境服务版本号系统Ubuntu22.04 server lts运行环境1JDK1.8前端WEBNginx1.8数据库postgresqlpostgresql13postgis3.1pgrouting3.1消息队列rabbitmq3.X(3.0以上)运行环境2erlang23.3.3.1 二、安装系统 2.1安装 1.安装方式&#xff0c;选第一条。 2.选择…

无需手动部署的正式版comfyUI是否就此收费?开源等同免费?

​ ​ 关于ComfyUI的正式版是否会收费的问题是很多AI玩家都关心的问题。 一旦ComfyUI正式版发布&#xff0c;我们是否需要为它买单&#xff1f;不再开源 同时这也引出了一个核心问题&#xff1a;开源究竟等不等于免费&#xff1f; ComfyUI正式版到底是什么&#xff1f;它会收…