十三水中各种牌型判断LUA版
近期回归程序行业,由于业务需求需要做十三水游戏,什么是十三水就不在多讲,下面是判断十三水牌型的方法(带大小王)
GetSSSPaiType = {};
local this = GetSSSPaiType;
local huaseTable = {};
local numTable = {};
function GetSSSPaiType.Gtetype(cardList)--首先清空数组huaseTable = {};numTable = {};--格式化牌for i,card in ipairs(cardList) dolocal num,huase = GetPokerHasJoker(card)table.insert(huaseTable,huase);table.insert(numTable,num);end--获取是第几墩牌需要判断if(#cardList==3)then --是头道 只判断是三条顺子或者散牌 头道只需要判断是三条还是对子return SSSPaiData[this.GtetSanZhangype(numTable)].imageName;elseif (#cardList==5)thenreturn SSSPaiData[this.GtetWuZhangType(huaseTable,numTable)].imageName;elsereturn SSSPaiData[SSSPaiType.Error].imageName; --数组越界 returnend
end
function GetSSSPaiType.GtetSanZhangype(cards) --判断头道是否三条if cards[1] == cards[2] and cards[1]==cards[3]then --是三条return SSSPaiType.SanTiao;elseif cards[1] == cards[2] or cards[1] == cards[3] or cards[3] == cards[2] then --是对子return SSSPaiType.DuiZi;else --是散牌return SSSPaiType.SanPai;endend
end
--牌大小优先级 五同>同花顺>炸弹>葫芦>同花>顺子>三条>两对>对子>散牌
function GetSSSPaiType.GtetWuZhangType(huaNums,dianNums) --五张牌需要两个参数 花色和点数if(table.ContainsValue(dianNums,0))then --带王 特殊判断table.RemoveValue(dianNums, 0) --首先吧王移除 table.RemoveValue(huaNums, 5) --花色也需要移除if (table.ContainsValue(dianNums,0))then --再次判断是否有王 防止有两个王 --有两个王table.RemoveValue(dianNums, 0) --有两个王再次移除掉王table.RemoveValue(huaNums, 5) --花色也需要移除if(this.isWuTongHasTwoJoker(dianNums))then --两个王 是五同return SSSPaiType.WuTong;elseif(this.isTongHuaHasTwoJoker(huaNums) and this.isShunZi(dianNums) and table.getrepeat(dianNums)==3)then --同花顺return SSSPaiType.TongHuaShun;elseif(this.isTeShuShunZiHasTwoJoker(dianNums) and this.isTongHuaHasTwoJoker(dianNums)) then --特殊同花顺return SSSPaiType.ShunZi;elseif(this.isZhaDanHasTwoJoker(dianNums))then --是炸弹return SSSPaiType.ZhaDan;elseif(this.isTongHuaHasTwoJoker(dianNums))then --同花return SSSPaiType.TongHua;elseif(this.isShunZi(dianNums))then --顺子return SSSPaiType.ShunZi;elseif(this.isTeShuShunZiHasTwoJoker(dianNums))then --特殊顺子return SSSPaiType.ShunZi;elsereturn SSSPaiType.SanTiao; --有两个王 最次也是个三条 不能是葫芦endelse --只有一个王if(this.isWuTongHasOneJoker(dianNums))then --一个王 是五同return SSSPaiType.WuTong;elseif (this.isTongHuaHasOneJoker(huaNums) and this.isShunZi(dianNums) and table.getrepeat(dianNums)==4)then --是同花顺return SSSPaiType.TongHuaShun;elseif(this.isTeShuShunZiHasOneJoker(dianNums)and this.isTongHuaHasOneJoker(huaNums))then --特殊同花顺return SSSPaiType.TongHuaShun;elseif(this.isZhaDanHasOneJoker(dianNums))then --是炸弹return SSSPaiType.ZhaDan; elseif(this.isHuLuHasOneJoker(dianNums))then --是葫芦return SSSPaiType.HuLu; elseif(this.isTongHuaHasOneJoker(huaNums) and not this.isShunZi(dianNums))then --是同花 但不是顺子return SSSPaiType.TongHua;elseif(this.isShunZi(dianNums) and not this.isTongHuaHasOneJoker(huaNums) and table.getrepeat(dianNums)==4)then --是顺子 但不同花return SSSPaiType.ShunZi;elseif(this.isTeShuShunZiHasOneJoker(dianNums)and not this.isTongHuaHasOneJoker(huaNums))then --特殊顺子 但不是同花return SSSPaiType.ShunZi;elseif(this.isSnaTiaoHasOneJoker(dianNums))then --是三条return SSSPaiType.SanTiao; elseif(this.isLiangDuiHasOneJoker(dianNums))then --是两对return SSSPaiType.LiangDui; elsereturn SSSPaiType.DuiZi; --有一个王 最低也是个对子endendelse --不带王 直接判断if(this.isWuTong(dianNums))then --是五同return SSSPaiType.WuTong;elseif(this.isShunZi(dianNums) and this.isTongHua(huaNums))then --是同花顺return SSSPaiType.TongHuaShun;elseif(this.isTeShuShunZi(dianNums) and this.isTongHua(huaNums))then --特殊同花顺return SSSPaiType.ShunZi;elseif(this.isZhaDan(dianNums))then --炸弹return SSSPaiType.ZhaDan;elseif(this.isHuLu(dianNums)) then --是葫芦return SSSPaiType.HuLu;elseif(this.isTongHua(huaNums))then --是同花return SSSPaiType.TongHua;elseif(this.isShunZi(dianNums) and table.getrepeat(dianNums)==5)then --只有连续的数才是顺子 不能有重复的 return SSSPaiType.ShunZi;elseif(this.isTeShuShunZi(dianNums))then --12345也是顺子return SSSPaiType.ShunZi;elseif(this.isSanTiao(dianNums))then --是三条return SSSPaiType.SanTiao;elseif(this.isLiangDui(dianNums))then --是两对return SSSPaiType.LiangDui;elseif(this.isDuiZi(dianNums))then --不对子return SSSPaiType.DuiZi;elsereturn SSSPaiType.SanPai;endendend
--判断是否顺子 带王
function GetSSSPaiType.isShunZi(paiNums)local n = #paiNums--计算0的数量local joker = 0for i=1,n doif paiNums[i] == 0 thenjoker = joker + 1endend--排序local sortt = function(a, b)return a < bendtable.sort(paiNums,sortt)local pre = paiNums[1]--计算总的补充数量local x = 0for i=2,n dolocal tx = paiNums[i] - prex = x + tx - 1pre = paiNums[i]end--如果x比0的数量少,那么可以将数列补充成连续的if x <= joker then --是顺子return true;else--不是顺子return false;end
end
--12345也是顺子 特殊判断
function GetSSSPaiType.isTeShuShunZi(paiNums)local teshu = {2,3,4,5,14};table.sort(paiNums)if(table.isEquation(teshu,paiNums))thenreturn true;elsereturn false;end
end
--是否同花
function GetSSSPaiType.isTongHua(huaNums)if(huaNums[1]==huaNums[2] and huaNums[1]==huaNums[3] and huaNums[1]==huaNums[3] and huaNums[1]==huaNums[4] and huaNums[1]==huaNums[5]) thenreturn true;elsereturn false;end
end
--是否五同
function GetSSSPaiType.isWuTong(paiNums)if(paiNums[1]==paiNums[2] and paiNums[1]==paiNums[3] and paiNums[1]==paiNums[3] and paiNums[1]==paiNums[4] and paiNums[1]==paiNums[5]) thenreturn true;elsereturn false;endreturn false;
end
--判断是否葫芦
function GetSSSPaiType.isHuLu(paiNums)if paiNums[1] == paiNums[2] and paiNums[1] == paiNums[3] thenif paiNums[4] == paiNums[5] thenreturn trueendendif paiNums[3] == paiNums[4] and paiNums[3] == paiNums[5] thenif paiNums[1] == paiNums[2] thenreturn trueendendreturn false
end
--判断是否三条
function GetSSSPaiType.isSanTiao(paiNums)table.sort(paiNums)if(paiNums[1]==paiNums[2]and paiNums[2]==paiNums[3])then return true;elseif(paiNums[2]==paiNums[3]and paiNums[3]==paiNums[4])then return true;elseif(paiNums[3]==paiNums[4]and paiNums[4]==paiNums[5])then return true;elsereturn falseend
end
--判断是否炸弹
function GetSSSPaiType.isZhaDan(paiNums)table.sort(paiNums) --避免浪费性能 排序后单牌只会在1或者5if paiNums[1] == paiNums[2] and paiNums[1] == paiNums[3] and paiNums[1] == paiNums[4] thenreturn trueelseif paiNums[2] == paiNums[3] and paiNums[2] == paiNums[4] and paiNums[2] == paiNums[5] thenreturn trueelsereturn falseend
end
--判断是否两对
function GetSSSPaiType.isLiangDui(paiNums)table.sort(paiNums) --避免浪费性能 排序后单牌只会在1 3 5if paiNums[1] == paiNums[2] and paiNums[4] == paiNums[5] thenreturn trueelseif paiNums[2] == paiNums[3] and paiNums[4] == paiNums[5] thenreturn trueelseif paiNums[1] == paiNums[2] and paiNums[2] == paiNums[3] thenreturn trueelsereturn falseend
end
--判断是否是对子 没有王
function GetSSSPaiType.isDuiZi(paiNums)table.sort(paiNums)if(paiNums[1]==paiNums[2] or paiNums[2]==paiNums[3] or paiNums[3]==paiNums[4] or paiNums[4]==paiNums[5])then return trueelsereturn falseend
end
-------------------------有一个王判断-------------------------
--判断是否五同 有一个王
function GetSSSPaiType.isWuTongHasOneJoker(paiNums)if (paiNums[1]==paiNums[2] and paiNums[1]==paiNums[3] and paiNums[1]==paiNums[4])thenreturn trueelsereturn falseend
end
--判断是否同花 有一个王
function GetSSSPaiType.isTongHuaHasOneJoker(huaNums)if(huaNums[1]==huaNums[2] and huaNums[1]==huaNums[3] and huaNums[1]==huaNums[4])thenreturn trueelsereturn falseend
end
--判断是否特殊顺子 有一个王 就是和王能组成A2345的顺子
function GetSSSPaiType.isTeShuShunZiHasOneJoker(paiNums)table.sort(paiNums) --首先吧自己的手牌格式化local teshu1 = {2,3,4,5};local teshu2 = {3,4,5,14};local teshu3 = {2,4,5,14};local teshu4 = {2,3,5,14};local teshu5 = {2,3,4,14};if(table.isEquation(teshu1,paiNums) or table.isEquation(teshu2,paiNums) or table.isEquation(teshu3,paiNums) or table.isEquation(teshu4,paiNums) or table.isEquation(teshu5,paiNums))thenreturn true;elsereturn false;end
end
--判断是否是炸弹 有一个王
function GetSSSPaiType.isZhaDanHasOneJoker(paiNums)table.sort(paiNums) --格式化牌 让散牌在1或者4if(paiNums[1]==paiNums[2] and paiNums[1]==paiNums[3])then return true;elseif(paiNums[2]==paiNums[3] and paiNums[2]==paiNums[4])then return true;elsereturn false;end
end
--判断是否是葫芦 有一个王
function GetSSSPaiType.isHuLuHasOneJoker(paiNums)table.sort(paiNums)if(paiNums[1]==paiNums[2] and paiNums[3] == paiNums[4])then return true;elsereturn false;end
end
--判断是否三条 有一个王
function GetSSSPaiType.isSnaTiaoHasOneJoker(paiNums)table.sort(paiNums)if paiNums[1] == paiNums[2] or paiNums[2] == paiNums[3] or paiNums[3]==paiNums[4] thenreturn trueelsereturn falseend
end
--判断是否两对 有一个王
function GetSSSPaiType.isLiangDuiHasOneJoker(paiNums)table.sort(paiNums)if(paiNums[1]==paiNums[2] or paiNums[2]==paiNums[3] or paiNums[3]==paiNums[4])then return trueelsereturn falseend
end
-------------------------有两个王判断-------------------------
--判断是否五同
function GetSSSPaiType.isWuTongHasTwoJoker(paiNums)if(paiNums[1] == paiNums[2] and paiNums[1] == paiNums[3])then return true;elsereturn false;end
end
--判断是否同花
function GetSSSPaiType.isTongHuaHasTwoJoker(huaNums)if(huaNums[1] == huaNums[2] and huaNums[1] == huaNums[3])then return true;elsereturn false;end
end
--判断是否炸弹
function GetSSSPaiType.isZhaDanHasTwoJoker(paiNums)table.sort(paiNums)if(paiNums[1] == paiNums[2] or paiNums[2] == paiNums[3])then return true;elsereturn false;end
end
--特殊顺子 就是和王能组成A2345的顺子
function GetSSSPaiType.isTeShuShunZiHasTwoJoker(paiNums)table.sort(paiNums)local teshu1 = {2,3,14};local teshu2 = {2,4,14};local teshu3 = {2,5,14};local teshu4 = {3,4,14};local teshu5 = {3,5,14};local teshu6 = {2,3,4};local teshu7 = {2,3,5};local teshu8 = {2,4,5};local teshu9 = {3,4,5};if(table.isEquation(teshu1,paiNums) or table.isEquation(teshu2,paiNums) or table.isEquation(teshu3,paiNums) or table.isEquation(teshu4,paiNums) or table.isEquation(teshu5,paiNums) or table.isEquation(teshu6,paiNums) or table.isEquation(teshu7,paiNums) or table.isEquation(teshu8,paiNums) or table.isEquation(teshu9,paiNums))thenreturn true;elsereturn false;end
end
使用时仅需调用GetSSSPaiType.Gtetype()即可,牌类型如下:
用到的牌型枚举:
SSSPaiData = {};
SSSPaiData[SSSPaiType.SanPai] = {typeName = "散牌",imageName = "sanpai"};
SSSPaiData[SSSPaiType.DuiZi] = {typeName = "对子",imageName = "duizi"};
SSSPaiData[SSSPaiType.LiangDui] = {typeName = "两对",imageName = "liangdui"};
SSSPaiData[SSSPaiType.SanTiao] = {typeName = "三条",imageName = "santiao"};
SSSPaiData[SSSPaiType.ShunZi] = {typeName = "顺子",imageName = "shunzi"};
SSSPaiData[SSSPaiType.TongHua] = {typeName = "同花",imageName = "tonghua"};
SSSPaiData[SSSPaiType.HuLu] = {typeName = "葫芦",imageName = "hulu"};
SSSPaiData[SSSPaiType.ZhaDan] = {typeName = "炸弹",imageName = "zhadan"};
SSSPaiData[SSSPaiType.TongHuaShun] = {typeName = "同花顺",imageName = "tonghuashun"};
SSSPaiData[SSSPaiType.WuTong] = {typeName = "五同",imageName = "tiezhi"};
SSSPaiData[SSSPaiType.Error] = {typeName = "错误",imageName = "error"};
用到的公共方法:可以放本类,也可以放全局,个人认为放全局会方便一点,这样其他地方也可以使用全局进行调用
--切割牌 带王
function GetPokerHasJoker(pkId)local sets = string.split(pkId, "_");local color = tonumber(sets[1]);local num = tonumber(sets[2]);if(num == 1) thennum = 14;endif(color == 5)then --如果是王 就吧点数当成0num = 0;endreturn num, color;
end--判断value是否存在
--字典/数组
function table.ContainsValue(tb, val)if(type(tb) == "table") thenfor k, v in pairs(tb) doif equals(v, val) thenreturn true;endendelsereturn equals(tb, val);endreturn false;
end--删除字典中值
function table.RemoveValue(tb, val)for k, v in pairs(tb) doif(v == val) thentable.remove(tb, k);return;endend
end--判断两个数组是否相等
function table.isEquation(tb1,tb2)if(#tb1~=#tb2)thenreturn false;endfor i,v in pairs(tb1) doif tb1[i] ~= tb2[i]thenreturn false;endendreturn true;
end--检查表内相同元素个数
function table.getrepeat(t)local check = {} local n = {}for key, value in pairs(t) doif not check[value] thenn[key] = valuecheck[value] = valueendendreturn #n;
end
写在后面:方法是临时拼凑,可能会有bug,我会持续修复,直至修复完美!!
相关文章:
十三水中各种牌型判断LUA版
近期回归程序行业,由于业务需求需要做十三水游戏,什么是十三水就不在多讲,下面是判断十三水牌型的方法(带大小王) GetSSSPaiType {}; local this GetSSSPaiType; local huaseTable {}; local numTable {}; functi…...
2023.10.19 关于设计模式 —— 单例模式
目录 引言 单例模式 饿汉模式 懒汉模式 懒汉模式线程安全问题 分析原因 引言 设计模式为编写代码的 约定 和 规范 阅读下面文章前建议点击下方链接明白 对象 和 类对象 对象和类对象 单例模式 单个实例(对象)在某些场景中有特定的类,…...
4个鲜为人知的Python迭代过滤函数
在Python中,迭代器可以帮助你编写更多Pythonic的代码,并在处理长序列时提高效率,内置的itertools模块提供了几个有用的函数来创建迭代器。 当你只需要遍历迭代器、检索序列中的元素并对其进行处理,而无需将它们存储在内存中时&am…...
使用logger.error(“自定义错误信息描述“,e)将错误信息输出到日志文件上
之前一直用e.getMessage()来获取错误信息 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController public class ClassF…...
音乐的数字未来:虚拟演唱会与TikTok的巅峰融合
在数字时代,音乐产业正在经历着革命性的变革。虚拟演唱会与TikTok的融合正引领着音乐的数字未来,为艺术家、粉丝和创作者带来了前所未有的互动性和娱乐体验。本文将深入探讨这一巅峰融合,以揭示音乐产业的新前景。 虚拟演唱会的崛起 虚拟演唱…...
基于图像识别的跌倒检测算法 计算机竞赛
前言 🔥 优质竞赛项目系列,今天要分享的是 基于图像识别的跌倒检测算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/…...
NSS [SWPUCTF 2021 新生赛]PseudoProtocols
NSS [SWPUCTF 2021 新生赛]PseudoProtocols 先看题目,题目要求我们先找到hint.php。 看这个get请求头,我们先用php://filter协议读一波 得到提示,让我们前往/test2222222222222.php 源码如下 <?php ini_set("max_execution_time&qu…...
字节码进阶之JVM Attach API详解
字节码进阶之JVM Attach API详解 文章目录 字节码进阶之JVM Attach API详解附加到虚拟机加载代理和获取信息分离虚拟机 使用Attach API的基本步骤1. **获取虚拟机实例**:2. **附加到虚拟机**:3. **加载代理或获取信息**4. **从虚拟机分离**:…...
Kubernetes 部署 kubeflow1.6.1
前言 安装前请注意捋清楚版本关系,如kubeflow版本对应的K8S版本及其相关工具版本等等 我们此处使用的是是kubeflow-1.6.1和K8s-v1.22.8 单机部署 部署K8S 初始化Linux 1.关闭selinux setenforce 0 && sed -i "s/SELINUXenforcing/SELINUXdisable…...
设计模式:建造者模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
上一篇《策略模式》 下一篇《适配器模式》 简介: 建造者模式,它是一种对象构建模式,它提供了一种构建对象的最佳方式。这种模式适用于当对象的构建过程需要涉及到多个部分ÿ…...
Maxon Cinema 4D 2024:打造独一无二的视觉效果 模拟模块大更新
在视觉效果和3D建模领域,Maxon的Cinema 4D一直以其卓越的性能和创新的功能引领着时代潮流。今天,我们很高兴地宣布推出最新版本——Maxon Cinema 4D 2024(C4D 2024),它将再次提升行业标准,为设计师提供更强…...
16.2 ARP 主机探测技术
ARP (Address Resolution Protocol,地址解析协议),是一种用于将 IP 地址转换为物理地址(MAC地址)的协议。它在 TCP/IP 协议栈中处于链路层,为了在局域网中能够正确传输数据包而设计,…...
三级等保-linux服务器三权分立设置
安全问题 安全控制点 风险分析 风险等级 标准要求 加固建议 服务器未严格按照系统管理员权限、审计管理员权限、安全管理员权限进行分配管理员账户,未实现管理员用户的最小权限划分。 访问控制 可能存在管理员越权操作的风险 中 d)应授予管理用户所需的最…...
抓取网页的含义和URL基本构成
抓取网页是指通过爬虫程序从互联网上获取网页的内容和数据。抓取网页是爬虫的核心功能之一,通过抓取网页,可以获取到网页中的文本、图片、链接等信息,用于后续的数据分析、挖掘和应用。 URL(Uniform Resource Locator)…...
计算机毕业设计 机器学习深度学习人工智能
视频参考: 计算机毕业设计项目分享_哔哩哔哩_bilibili 基于深度学习的农业病虫害识别基于SpringBootVue的博客系统基于SpringBootVue的仓库管理系统基于卷积网络的花卉图像识别 毕业设计选题: VX:whbwqq123 基于机器学习的大气数据的污染物pm2.5预测基…...
施密特正交化
相信大家在平时的期末考试中一定少不了对某某向量组执行标准正交化类型的题目。今天我们从这个题目入手,说明这个如何执行施密特正交化,以及为什么要进行正交化。 一、例子 例子:设 a 1 [ 1 2 − 1 ] a_1\begin{bmatrix}1\\2\\-1\end{bmat…...
低代码开发:加速应用开发的利器
目录 一、引言 二、低代码开发的定义和原理 三、低代码开发的关键特性和优势 四、低代码开发的应用场景 五、低代码开发平台的市场现状和发展趋势 六、成功案例分析 七、结论 一、引言 随着信息技术的快速发展,企业对于应用开发的需求也日益增长。传统的应用…...
数据安全发展趋势与密码保护技术研究
随着数据跃升为新型生产要素,数据安全的内涵也从数据本身安全、数据资源安全,发展到数据资产安全三个层面提出了不同的要求,本文就是详细探讨数据安全的这三个层面的安全内容进行分析。 通过对数据安全不同发展阶段的安全需求和保障对象进行研…...
368周赛leetcode
1 2题元素和最小的山形三元组 经典动规 题目内容 给你一个下标从 0 开始的整数数组 nums 。 如果下标三元组 (i, j, k) 满足下述全部条件,则认为它是一个 山形三元组 : i < j < k nums[i] < nums[j] 且 nums[k] < nums[j] 请你找出 num…...
Vue 的 nextTick:深入理解异步更新机制
目录 一、前言 二、Vue.js 异步更新机制简述 三、Vue.nextTick原理 四、nextTick 的应用场景 1. 获取更新后的 DOM 元素 2. 在 DOM 更新后执行自定义的回调函数 3. 解决事件监听器中的更新问题 五、Vue.nextTick与其他异步更新方法的比较 六、总结 一、前言 Vue.js&a…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
目录 🔍 若用递归计算每一项,会发生什么? Horners Rule(霍纳法则) 第一步:我们从最原始的泰勒公式出发 第二步:从形式上重新观察展开式 🌟 第三步:引出霍纳法则&…...
Django RBAC项目后端实战 - 03 DRF权限控制实现
项目背景 在上一篇文章中,我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统,为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...
算法250609 高精度
加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...
Angular中Webpack与ngx-build-plus 浅学
Webpack 在 Angular 中的概念 Webpack 是一个模块打包工具,用于将多个模块和资源打包成一个或多个文件。在 Angular 项目中,Webpack 负责将 TypeScript、HTML、CSS 等文件打包成浏览器可以理解的 JavaScript 文件。Angular CLI 默认使用 Webpack 进行项目…...
Qt 按钮类控件(Push Button 与 Radio Button)(1)
文章目录 Push Button前提概要API接口给按钮添加图标给按钮添加快捷键 Radio ButtonAPI接口性别选择 Push Button(鼠标点击不放连续移动快捷键) Radio Button Push Button 前提概要 1. 之前文章中所提到的各种跟QWidget有关的各种属性/函数/方法&#…...
