聊聊深度优先搜索算法及应用

之前看算法书对于深搜一直是一个坎,有点难以理解或者理解了一些但没法下手写,这回来重新探讨一下个人目前的理解及解决方案。文章从全排入手,到解决八皇后,和尚妖怪过河等问题。 首先,看一个全排序,传入一个数组(其中有n个可不等长的数组),得到的结果是其中每个数组取一个数组成的新数组的集合,如下 result=[0]*3 arr=[[1,2,3],[4,5],[7,8,9]] res=[] #算法部......

爬虫--钢琴曲谱

最近学钢琴,也经常会用到曲谱,但网上大多数曲谱不清晰,或者清晰的要vip。因此研究下某曲谱网站,进行爬取vip才能下载的曲谱并组合为pdf。 可以在http://123.206.217.190:8888试用效果 下面的是python3.x代码,在window可直接本地运行,在linux做一些注释中的修改。 #coding:utf-8 import requests from bs4 impo......

在线接口测试及生成文档

由于每次更改后端接口都要经过测试,然后又要去修改接口文档,就想着能不能整合这两步,为了自己能灵活修改,便自己来写个。 https://github.com/webgjc/ApiTestToMd 这次的代码有点多,就不直接展示了,放在github上,也可方便下载使用。   写写思路及主要用到的工具: 后端使用flask框架,requests作为接口测试,增加了百度翻译api作为参数翻译,另外写......

庆祝博客一周年!!

博客不知不觉已经一周年咯。 一年写了50+篇文章,coding也基本未间断。 在去年还未知的技术走向今年也将看到沉淀。 这次主要将要完成一个的一个事情便是 将博客已有的一些技术和代码较为完善的转存到github上。 一方面是收集零散的片段,另一方面是整理注释代码。 为以后做简单的借鉴与留念。 github地址是https://github.com/webgjc/blog ...

扫雷js版

是老早之前写的,今天整理系统文件发现了这个扫雷,也是小惊喜,小看了下还挺有趣哈! 直接上代码,具体在代码中注释。 主要看点有两块,一个是从n个整数随机产生不重复的m个随机整数,m<n 另一个就是自动搜寻周边不是雷的区域,也就是点了一个不是雷有时会显现一大片。 <!DOCTYPE html> <html lang="en"> <head>     &l......

node+express+mongodb初试

新尝试另一个语言node.js和框架express,记录一些基本的操作与技巧。 此次最大的不同是node.js是异步的,有些操作就不那么直观。 这里在linux centos做测试。前提先安装好node.js和npm。 这里也类似上次flask完成一个登陆与增删改操作的接口。 先用命令行直接生成一个项目 npm install express-generator -g express --v......

Python一个人机聊天的应用

在上次tts的基础上,这次来完成一个完整的聊天应用。流程为记录音频–读取音频–语音识别(使用百度api)–文本对话(使用图灵机器人api)–tts。 其余的就直接在代码中解释: #python3.x #aip是百度语言识别AI库,可以到百度免费使用 from pyaudio import PyAudio,paInt16 import numpy as np from datetime imp......

用python完成文本转音频(tts)

用 python完成tts的话一般会用pyttsx库,但一般pip下载的话会有各种报错。所以这里找了实际试了可用的github上几个改编的库。 对于python3.x版本,选择 https://github.com/jpercent/pyttsx ,来完成tts,但python3版本的目前还没发现有保存为音频文件的,只能直接发出声音。代码如下: import pyttsx engine = ......

宽客初探---策略之旅

既然已经接触了股票类金融,便也尝试一下宽客的滋味,至少python编程还是在的,在聚宽创了个号,了解基本的几个股票概念,便开始实践。 看了很多知乎,雪球大v的文章,了解到量化大多也是条充满荆棘的道路,然而这种路走多了好像也习惯了,(绝望多了也享受绝望的感觉了)<-这种feeling很奇妙。不试试咋么知道呢,反正还没到头脑发热的程度,大不了重头再来呗。 家里人谈股色变,但好像我没咋受影响......

蒙特卡洛树搜索(mcts)实践--还是五子棋吧

看AlphaZero的时候看到这个mcts,因为需要用他来产生棋局进行训练。比较神奇,就小小探究一下。这边做一个五子棋mcts AI。 mcts按我目前的理解也就是在目前的情况下(根节点),随机产生下一步的节点,之后进行随机模拟至产生一个结果,把结果反馈于当前节点与之前的节点,这样模拟n次以后,得到根节点的下一步的各个节点的A/B,A为结果获胜的次数,B为访问次数。用公式计算就可以得到各个节......