python
文章平均质量分 81
hans774882968
这个作者很懒,什么都没留下…
展开
-
手把手教你从零实现单纯形法的大M法,附若干线性规划模型应用题题解
我大二下第一次看《运筹学基础及应用(第六版)》学解线性规划问题的单纯形法的人工变量法时,看到了这句话:“用大M法处理人工变量,用手工计算求解时不会遇到麻烦。但用电子计算机求解时,对M就只能在计算机内输入一个机器最大字长的数字。”我实在不能苟同,因为只要写一个表示大M的结构体,然后模拟手工计算的过程,就不会有这个问题。于是我写了这个项目。单纯形法是求解一般线性规划问题的迭代算法。其基本思想是从一个初始的基可行解出发,通过迭代逐步逼近最优解。原创 2024-07-13 23:20:03 · 678 阅读 · 0 评论 -
【算法】某赛车游戏中的组合计数问题及其扩展。推导思路:层层合并
本文通过代码发现了一个组合数学公式,并证明了它。在某款赛车游戏中有组队竞速赛。共有`n`个人,`n`为偶数,分为人数相等的红队和蓝队进行比赛。结果按排名得分的数组为`pts`,单调递减且均为正整数。比如`pts = [10, 8, 6, 5, 4, 3, 2, 1]`表示第1~8名分别为所在队伍获得10、8、6、…、1分。总分高的队获胜,如果总分一样,则获得第一名的队获胜。对以下情况,分别求红队获胜的情况数。1. 所有人都能完成。2. 可能有人未完成(显然第一名完成了),未完成的都获得0分。原创 2024-06-16 17:43:34 · 1113 阅读 · 1 评论 -
为Python编写C++扩展,用setuptools打包自己的分发包,并上传到PyPI
最近手痒想写Python和C++代码,于是有了这篇~~精华~~水blog。这次打算用C++写些数据结构,打包后给Python调用。环境 Windows10 VSCode Python 3.7.6 pytest 7.4.4 setuptools 68.0.0 `g++.exe 13.1.0`。setuptools官方文档建议舍弃`setup.py`(setup脚本)的写法,转而使用一个叫build的命令行工具。但该工具只支持到Python3.8,所以本文依旧使用`setup.py`。原创 2024-05-13 17:44:20 · 1250 阅读 · 2 评论 -
择偶只选丑的竟能匹配更优质配偶?让这个Python项目告诉你真相!
TLDR:只考虑选颜值低的为配偶的策略确实能提升除颜值外的整体分数,但也会显著增加择偶时间。在一个充实的夜晚,我刷到了[这个视频](https://www.bilibili.com/video/BV1pp421R7Ro)。视频大致的内容是,如果你不在意配偶的颜值,那么择偶时不妨只选丑的,这样你匹配到的配偶在其他你在意的方面会更优秀。这个说法直觉上就很对,但怎么稍微严谨点地证明呢?一开始我想建一个数学模型,但我数学太差了,建不出来,于是就有了这个Python项目和这篇精华文章。原创 2024-05-08 14:49:31 · 664 阅读 · 0 评论 -
【前端甜点】某视频网站的m4s视频/音频下载方案(20240420)
从20年到上个月为止,it just works well。但20240420开始,不知道是Chrome浏览器升级还是什么原因,二进制数据包装的Blob对象转化为a标签后域名变成了,无法方便地下载m4s了,于是这个脚本不能用了。这个原因我一直都没找到。好在我很快又摸索出了一个稍微麻烦点的路子:先在浏览器控制台运行JS代码,获取base64字符串,然后在本地用python把它转为mp3。在上述古老的脚本里,我将XHR返回的类型指定为Blob了,因此我需要将其转为base64字符串。最后我找到的API是。原创 2024-04-20 23:46:39 · 1173 阅读 · 2 评论 -
【入门dp】力扣鸡蛋掉落问题和转账问题的关系初探
我昨晚偶然编出了一道水题,名为转账问题:已知银行卡里有不超过`n`元,你想把卡里所有钱提到某信支付,但你无法看到卡里的钱,你只能执行若干次转账`i`元的操作,每次看到转账成功与失败的提示。问至少需要操作多少次。`n`和`i`是自然数。形式化描述:你的策略`y`是一段代码,初始输入为`n`,代码对于实际的`i = 1~n`元各有一个需要的猜测次数`x[i]`,则`y = max(x[i] for i in range(1, n + 1))`,所求为`min(y for y in y_set)`。原创 2023-07-16 12:52:47 · 294 阅读 · 0 评论 -
【reverse】虚假控制流入门:Ubuntu20.04安装ollvm4.0踩坑记+用IDApython去除BCF
虚假控制流(Bogus Control Flow,BCF),通过加入包含不透明谓词的条件跳转(也就是跳转与否在运行之前就已经确定的跳转,但IDA无法分析)和不可达的基本块,来干扰IDA的控制流分析和F5反汇编。 Ubuntu20.04安装ollvm+各种踩坑记录 那些永远不会执行到的代码块,就叫做不可达的基本块。这些跳转和不可达基本块并不会影响程序原有的逻辑,但会干扰我们的分析,这就是虚假控制流混淆达到的效果。尝试用IDApython去除bcf原创 2022-09-25 21:08:15 · 2134 阅读 · 0 评论 -
【前端逆向】社会主义核心价值观加密方法解析+python版复现
偶然发现了一种有趣的编码方法,这种方法的特点是:一个明文可能得到多个密文,但一个密文可以得到唯一的明文。我们要逆的网站:http://z.duoluosb.com/,该网站没有特意做反调试,可以说难度很小。都小于10,所以解码时,读到10和11,我们可以借鉴汇编的概念,认为这是一个”opcode”,有唯一的解码方式。因此我们可以在这里加上一个巧妙的随机化,即。这里catch块和finally块的内容都不是我们需要关注的。函数,于是一个明文可以得到多个密文,但一个密文对应唯一的明文。原创 2022-09-20 01:34:41 · 4533 阅读 · 0 评论 -
【reverse】buu-CrackRTF——提取PE中的resource、rtf的固定文件头
用pefile库获取资源文件。文件头、函数头拥有固定数据是常常涉及的常识png头固定:MagicImageViewer、函数头固定:SCUx401CTF2021-RE2-pixpix。原创 2022-09-19 00:45:50 · 412 阅读 · 0 评论 -
【reverse】buu-[WUSTCTF2020]level4——二叉树+IDA动态调试
分别表示二叉树的左右孩子,而我们期望得到的是前序遍历。因为字符有重复,所以直接通过数据结构课上学到的那个经典算法来确定二叉树应该是不可行的。结构体数组的信息后,只需要实现前序遍历二叉树了。我们需要做int数组转64位整数的操作,可以用python+libnum库来实现。这表明bss段有一个结构体数组,每个结构体占24个字节空间。的语句,自己手动翻译原有代码是很费劲的,也许是写脚本生成出来的,因此我认为我这种写法更好。和bss段有一个结构体数组的事实,不难得出。的操作是给二叉树节点指定左右孩子,也就是。原创 2022-09-13 00:46:13 · 814 阅读 · 0 评论 -
【reverse】新160个CrackMe之154-cpp_crackme1——MFC+纯算法逆向
把char赋值给int的隐式类型转换是“有符号扩展”。不要想当然地把__ROR4__简化为右移一位。python实现时不要怕麻烦。原创 2022-09-03 20:59:54 · 896 阅读 · 0 评论 -
Ubuntu写python脚本实现自定义壁纸幻灯片:Vue法、字符串拼接法、minidom法
focal.xml的一张图片需要以下参数:static持续的时间、transition持续的时间(均以秒为单位)、当前图片和下一张图片。环境:Windows10、虚拟机Ubuntu20.04。原创 2022-08-07 18:48:17 · 366 阅读 · 0 评论 -
LeetCode1927 求和游戏——挖掘性质的博弈论
先手=Alice,后手=Bob这题太难了QAQ这题有很多种分类讨论的方法,其中一种是按’?‘的个数分类。首先,如果’?'共有奇数个,先手必赢。因为最后一步是轮到先手,使得左侧==右侧的填法≤1个,但先手的填法有10个,任选一个使得左侧≠右侧即可。现在’?'共有偶数个。设问号多的那侧有q1个,对应的数字和为s1。于是有q2,s2。q1==q2。若s1==s2,后手赢。因为先手在某侧填了x,后手总是能在另一侧填x。否则先手赢。因为先手总是能选择在数字和大的那一侧填9,使得后手不能追上。q1.原创 2021-08-11 16:48:58 · 160 阅读 · 0 评论 -
LintCode1772 子集数量(划分原集合+状压dp)
这篇题解仅作为https://www.lintcode.com/problem/1772/discuss/2519的一个补充注释我首先想到的是一个错误的做法首先用图论描述。i和2i,i和3i连无向边,那么一个点和邻居不能都选。但是还做不了。但我们想到dag上dp很常见,所以考虑赋予方向,比如小连大。这样卷得到dag,设dp【i】【0/1】表示i不选和选的方案数。转移:i选了,那么邻居都只能是不选;否则就是选和不选加起来。两种情况每个邻居都是连乘。现在没电脑打不了转移方程错误原因可能是,树的独立集原创 2021-08-11 01:05:34 · 269 阅读 · 0 评论 -
python连接mysql的demo——pymysql
前言:本来想用python做一个自动回复消息的bot,中间用到mysql数据库存储的数据。后来知难而退了,就退化成python连接mysql的练习了QAQ相信我,这篇blog不是复制粘贴的,比csdn那些复制粘贴的玩意要有诚意一些~pip安装pip install pymysql我安装时没有踩坑。如果踩坑的话我也不知道怎么办qwq……新建数据库jokes和表joke安装mysql略。连接mysql:mysql -u你的mysql用户名 -p注意“-u”和用户名之间没空格。比如用户名root原创 2021-07-03 02:17:47 · 500 阅读 · 0 评论