- 博客(95)
- 资源 (1)
- 收藏
- 关注
原创 上下文无关文法、产生式、终结符、非终结符
第二个产生式 <subject> ::= "I" | "You" | "He" | "She" 表示一个主语可是"I"、"You"、"He"或"She"。第三个产生式 <predicate> ::= "eat" | "drink" | "sleep" 表示一个谓语可是"eat"、"drink"或"sleep"。"I"、"You"、"He"、"She"、"eat"、"drink"和"sleep"是终结符,它们表示具体的词汇或符号。这意味着在给定的上下文中,一个非终结符的展开规则是固定的,不受其他符号的影响。
2024-04-20 16:32:40
946
原创 【Python自动化游戏操作脚本】
还支持录制操作,然后播放录制的操作:意味着你只需要做一遍,后面不需要你再亲自做了。使用场景:回合制游戏自动刷图、固定游戏本自动行动、游戏一键连招。比如这一关只需要按哪些键盘、鼠标的,那就可以代替你的双手。如果你的工作内容操作比较固定,也可以使用它。支持自定义配置模拟鼠标键盘操作。
2023-11-30 15:21:25
589
转载 Ubuntu 创建自定义命令
命令:gedit ~/.bashrc在里面加上自己的命令toZxkp,和实际的指令alias toZxkp='. /mnt/win/toZxkp.sh'命令:source ~/.bashrc (立即生效)
2021-10-25 14:55:48
663
原创 了解常见技术和前沿技术的必要性
拓宽常见技术,并实践,了解那些公认能提升人们效率的技术,因为这些技术发明出来,就是为了实际解决各类问题、提升效率。 最前沿的许多技术之所以要被研究,是因为它们如果能投入使用,确实能解决人们当前的效率问题,解决效率问题是人们进步的方式之一。...
2021-06-25 10:28:28
1295
原创 PHP实现二叉树和测试
<?phpclass TreeNode{ private $value; private $leftChild; private $rightChild; public function __construct($value,$leftChild=null,$rightChild=null) { $this->value = $value; $this->leftChild = $leftChild; .
2021-05-19 20:18:52
148
原创 PHP实现队列和测试
<?php/** * Class MyList * 队列,先进先出,头部出,尾部入 * * */class MyList{ //队列头索引 private $head_index = 0; //出队的内容 private $out_value; //入队的内容 private $in_value; //队列数组 private $list_arr = []; //队列最大值(满了不能入队) .
2021-05-19 11:44:56
237
原创 栈的操作状态撤回思路
* 栈,后进先出,永远在栈顶操作* 可用于记录最后一步操作,逐步撤回。* 如果维持一个栈表,里面的内容指向某些具体的操作日志记录id,* 当新增操作记录时,把id插入到最后一行,当要回退到最后一个状态时,读取最后一个操作记录id,对应的操作内容,对该操作做等幂撤销操作(在记录该操作时,就记录了相应的撤销操作指令。可以参考PHP的Yii框架的Migrate),让当前系统回到上一步的状态,然后删除栈表最后一行操作记录id* 这样就完成了系统的操作回退** 如果是在redis里面做,可以根据上述原理.
2021-05-19 11:18:09
341
原创 PHP实现栈和测试
<?phpclass HeadStack{ //栈顶索引 private $top_index = -1; //出栈的内容 private $out_value; //栈数组 private $stack_arr = []; //栈最大值(满了不能入栈) private $max_num = 10; //初始化栈,设置栈最大值 public function __construct($max_num=10.
2021-05-19 11:04:12
123
原创 前缀树php实现1
<?phpclass TireNode{ public $data; public $children = []; public $isEndingChar = false; public function __construct($data) { $this->data = $data; }}
2021-05-18 10:47:53
107
原创 前缀树PHP实现2
<?phpinclude "TireNode.php";class Tire{ private $root; public function __construct() { $this->root = new TireNode("/");//根节点 } public function getRoot(){ return $this->root; } public function in.
2021-05-18 10:47:27
106
原创 时间管理
为什么有的人能拥有很多时间?1、他们效率高2、他们效率高的根本原因是他们处事方式和绝大多数人都不一样1、懂得投资 和金钱管理一样,时间管理也存在消费、投资之分。 现在每投下的一点时间,都会为将来多倍的节省时间。 一次播种,多次收获。 现在做的事情,是未来做的事情的基础。2、减少消费比例 消费是指投入时间或金钱之后,只能得到暂时的效果、快乐,对未来的影响小。 吃饭花费的金钱是消费,买书花费的金钱是投资。 打游戏花费的时间是消费,看书花费的时间...
2021-04-27 18:39:40
109
原创 从计算机的多级缓存设计出发得到的一些生活工作方法思考
1、如果能预见到可能性很大的操作,那么做提前处理 比如,读取当前页内容之后,很大可能要读取下一页,那么可以提前读取下一页。但是读取下一页的动作,是用户正在阅读当前页的期间去做的,异步去做,可以在用户阅读的同时同步进行。 发散思考: 1、流程步骤已经触发,还有后续步骤等着触发记录,那么期间就可以通过异步提前生成好下一步要保存的内容,用户点击的一瞬间就已经生成完毕。 2、用户保存数据后,可能存在领导审批的步骤,这个步骤的数据准备可以在保存之后就生成,也可...
2021-04-25 11:19:43
81
原创 消息队列-削峰
MYSQL单机处理请求是有上限的,因此需要把请求限制在一定数量上。一般的MYSQL每秒2K请求处理是中上水平,达到5K就处理不过来。通过消息队列来削峰,把请求的处理堆积在队列中,或队列满到10K或某个值,就不加入队列都可以,按顺序每秒2K的进行处理,达到削峰目的。...
2021-04-23 10:12:27
1355
原创 消息队列-异步
用户发起请求之后,不要求实时得到结果的业务,都可以考虑使用异步,这样就能立马得到返回结果。比如秒杀成功之后,不需要马上生成订单,只需要告诉他秒杀资格成功了。
2021-04-23 10:07:34
450
原创 php+redis实现处理高并发秒杀(令牌桶限流)
<?phpclass redis_miaoshaControl extends mobileControl{ public function __construct() { parent::__construct(); } /** * 接口参数 * @return array */ public function getRules() { return [ '.
2021-04-21 15:32:46
798
原创 秒杀解决方案记录
1、redis 保存用户id上次请求时间,10秒内拒绝服务2、令牌桶 redis获取令牌数量,如果应没有令牌了,拒绝服务。 同时用脚本定时生成令牌,写入redis3、检查库存和活动时间 在活动开始之前,可以在redis先存入库存总量和活动时间4、队列下单 先在redis扣减库存,加入rabitmq队列,定时器脚本执行消费队列,创建订单,短信通知对应客户,入库https://www.cnblogs.com/myJuly/p/13608455.html...
2021-04-21 11:06:58
78
原创 go学习-变量
package mainimport "fmt"//包级别var funclevel string = "what"//函数级别func main() { var msg string = "hello word1111"; //块级别 { var block_var = "block_var"; fmt.Println(block_var,funclevel); } fmt.Println(msg); fmt.Printl.
2021-04-20 22:20:57
68
原创 go语言学习日记1
1、安装gohttps://golang.google.cn/2、配置go环境go env 查看环境go env -w 配置各种项配置环境变量go env -wGO111MODULE=on 必须小写go env -wGOPROXY = "https://goproxy.io,direct"https://goproxy.io/zh/3、安装ide golangd4、新建项目、新建helloword.gopackage mainimpo...
2021-04-20 21:59:03
97
原创 模板设计模式
模板设计模式的核心思路是,设置好一个操作步骤,具体每个操作步骤的实现不同实例可以根据实际有所不同public function getFieldsLimitRows($modenum,$fields){ $model = m($modenum); if(method_exists($model,'changeLimitRowsFields')){ $fields = $model->changeLimitRowsFields($fields); } .
2021-04-16 11:50:21
66
原创 IIS服务器SSL证书配置打开HTTPS
1、拿到IIS证书2、在电脑开始-》运行-》MMC,增加编辑管理项目-》证书-》编辑本地计算机证书-》导入证书-》输入IIS证书密码,导入完成3、IIS服务器站点-》绑定-》443端口-》选择证书-》确定...
2021-04-10 11:08:12
176
原创 高德地图API地图展示、输入搜索、选择修改地图内容
function initGDMap() { console.log('初始化地图'); var center =[22.538184,113.95148]; var map = new AMap.Map('container', { center:center, zoom:11 }); var placeSearch = new AMap.PlaceSearch({ map: map }); //构造地点.
2021-04-08 14:28:53
525
1
原创 mysql case when then else end 实践
SELECTid,gsmc,CASEWHENxmISNULLTHEN'无'ELSExmENDASmy_mynameFROM`oa_wdxsc`LIMIT0,30
2021-04-02 14:18:22
77
原创 解耦,可扩展代码
改造前/** * 这里目前是写死的,每次增减都要改动这里的代码 * @desc 更好的做法之一是,在对应的模型里面写一个方法changeLimitRowsWhere, * 这样未来有多少个表都能不修改这边的算法模板,却又能灵活控制这里的条件 * @param $table * @param $where * @return mixed|string */public function getWhere($modenum,$where){ if(strpos($modenum,'m.
2021-03-31 15:55:59
124
原创 时间差计算函数
function getDateDiff($date_one,$date_two){ // 指定两个日期,转换为 Unix 时间戳 $date1 = strtotime($date_one); $date2 = strtotime($date_two);//计算两个日期之间的时间差 $diff = abs($date2 - $date1);//转换时间差的格式 $years = floor($diff / (365*60*60*24)); .
2021-03-31 14:18:39
1168
原创 解耦
/** * 假设未来不同的模块要增加或者删减跟进时间字段,就得动这边的代码,也就是说,这里每一行的灵活性,都不足 * 可以改成getTableWhiteNameAndKey,返回可通过的表、对应的公司名称 * @param $rs * @param $table * @return mixed */private function addData($rs,$table){ if($table=='customer'||$table=='wdxsc'||$table=='custome.
2021-03-30 20:41:06
96
原创 关于效率和代码设计的思考
今天在考虑一个项目究竟为什么好做、为什么不好做的原因时,得到一些感悟。在做一个满是前端js代码的项目时,感觉为了修改一个小功能,却要花费很大的代价,时间都花在读懂代码上。“同一个文件里面代码多,且一个小函数里面做的事情太多,并且没有注释它到底是为了什么而做这一步,短短的6行代码,都是为别处的函数做伏笔,没法判断每一行的目标。”变量的来源不好追踪、变量定义后的用途不明,变量命名没有意义,所有的代码很难理解。解决办法是:1、对于某块功能,要有对应的流程步骤说明文档2、相关函数..
2021-03-23 20:19:11
87
原创 js 动态生成列表 例子
//渲染列表var list_html ='<table id="link_parts_table" style="width:90%;"> <tr>' + '<td>物料编码</td>' + '<td>配件名称</td>' + '<td>配件类别</td>' + '<td>设备型号</td>' + '<td>序列号</td&g.
2021-03-20 12:24:20
313
原创 js 把数组里面的id拼接成用逗号拼接的ids字符串
function arrToIds(arr){ var new_ids = ''; for(i=0;i<arr.length;i++){ new_ids += ','+arr[i]; } if(new_ids!=''){ new_ids = new_ids.substr(1); } return new_ids;}
2021-03-20 12:18:15
1310
原创 js 检查变量是否null
function check_is_null(exp){if (!exp && typeof(exp)!="undefined" && exp!=0){return true;}else{return false;}}
2021-03-20 10:09:30
135
原创 jq 获取数组下标
function getArrIndex(arr,value){ var my_index= null; $.each(arr,function(idx){ if(arr[idx] == value){ my_index = idx; return true; } }); return my_index;}
2021-03-20 10:06:48
1112
原创 点击子元素关闭当前窗口
一开始搞不成功,窗口的内容子元素是动态生成的,点击窗口的元素去关闭当前窗口时,总是获取不到窗口元素关键是通过$("div", window.parent.document)类似的代码,去获取父级窗口元素。
2021-03-19 18:03:32
70
原创 layui复选框无法选中问题解决
复选框点击了之后,样式效果是选中了,但是每当获取表单提交的时候,它的checked状态总是false通过以下代码解决了,监听复选框点击操作,通过以下代码解决插件无法自动修改选中状态的问题。至于怎么样才能让插件本身点击就能自动选中,还未知。layui.use('form', function () { var form = layui.form; //监听复选框 form.on('checkbox', function(data){ if(da
2021-03-17 19:51:08
1664
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人