0%

项目地址:github

贴吧爬虫。更新后请先删除原有的日志spider.log

2018.6.13更新:新增支持python 3。请卸载原来的python库mysql-python,改为使用mysqlclient

2017.3.23更新:修改了页选项参数形式,增加了只看楼主、只爬精品和自定义过滤帖子功能。

阅读全文 »

题目

鬼谷子是孙膑、庞涓的老师,他从2到99中选出两个不同的整数,把两数之和S告诉了庞涓、把两数的乘积M告诉了孙膑。

  1. 庞涓对孙膑说:虽然我无法确定这两个数是什么,但我肯定你也不知道这两个数是什么。
  2. 孙说:我本来不知道,但是你这么说,我就知道了。
  3. 庞说:既然你知道了,那我也就知道了。

问:这两个数字是什么?

阅读全文 »

循环播放一个歌单的时候,我觉得最难受的就是播完一首就猜到下一首是什么(循环多了是会不小心记住的)。所以我特别喜欢对歌单进行随机播放。我不知道不同的音乐播放器使用的随机播放算法具体是什么,但估计有这么几种:

  1. 每次等几率地播放一首歌。这是最不近人情的算法,高中的时候有个同学的手机大概就是使用这种算法来随机播放的,歌不多时偶尔遇到播完一首又重放一遍的情形,比较恼人。
  2. 播完当前曲目时,等几率播放其他曲目。这种算法不会出现重复播放一首歌的情形,但有可能两首相同的歌中间只插了一首其他歌曲。而且这种算法不能保证覆盖所有曲目,可能你放了很多歌了还是有的歌曲没有听过一遍。
  3. 每次播完歌单后,打乱列表然后从头播放(顺序播放)。列表的Shuffle算法很简单也很迅速。可惜我使用的音乐播放器基本没有打乱列表的功能,不知道是出于什么考虑,可能有什么不太好的地方吧。

言归正传,如果音乐播放器能提供接口让我自己来写播放的算法,我会记录每首歌最近播放的时间,越久远则越容易被播放。

阅读全文 »

主程序

主程序的行为主要有两种,一种是载入一个脚本(实际上是把脚本文件整个地运行一遍)。载入的脚本,lua函数外的非local变量(包括函数本身)由主程序全局维护。

global.Include(10000) 实际上就是载入编号10000的脚本。可以尝试在此脚本第一行(函数体外)写一句global.Print(“Pal5Q”),这样每调用一次Include,控制台就会输出一次Pal5Q。

另一种则是直接从全局变量中调用指定名称的函数。

global.CallScript(10000)实际上是看编号10000对应的脚本文件函数名(即function macro)是否存在,若不存在,则先将macro.lua执行一遍。最后调用macro函数。如果事先有调用global.PushParam(a),则调用macro函数时传入参数a。由于macro.lua里面没有声明名字为macro的函数,因此控制台提示函数未定义。

我们看到原生脚本除了macro宏之外都是函数名和文件名对应的,一方面是不宜让主程序维护太多lua变量而拖慢速度,另一方面也可能是写脚本的不清楚个中原理不敢乱来。建议查看AI脚本击败三皇一体,这个里面的脚本就已经不是文件和函数一一对应的了。只要清楚了原理,就可以封装许多公用lua函数,写起脚本方便许多。
顺便一提,之前认为不同目录下脚本重名会有干扰,其实是函数名的覆盖而非文件名的冲突。

阅读全文 »

禁道具和连携击败姜世离

前言

谢沧行在锁妖塔与姜世离殊死较量的场景让人难忘,而对应困难模式的战斗则更是让人大呼过瘾。网上关于此战的策略,多半依赖以下道具或手段:

  • 烤鸭
  • 连携
  • 隐蛊

这些方法让战斗变得分外轻松,完全没有濒死对抗阶段的心惊肉跳,可以说,是对本战的一种不合适的解读。
笔者曾于一周目后试图摆脱这三种在多数战斗都过强的战术,提出了一种依靠DLC中恶鬼冥晶取得胜利的战略,在与他人讨论并经过大量测试后又成功将DLC的依赖摆脱,实现了借助寒泉术输出的方案
这一次,笔者决定探究清楚所有细节,给出两种战术,实现对连携和道具的完全禁用,并模拟计算胜率。这里的禁道具,包括在战斗前食用各种属性药(但其中一种战术需要给谢沧行留一个赤兔筋,这是非常容易达成的目标,也能大幅提高胜率)。

阅读全文 »

问题介绍与扩展

几天前偶然在网上看到这样一道面试题:

Given a random number generator which can generate the number in range (1,5) uniformly. How can you use it to build a random number generator which can generate the number in range (1,7) uniformly?

当时第一反应是无法承诺在有限步之内做到,只能逼近。今天突然想到这个问题,深入探究后发现收获不少。为了叙述方便,我们构造集合AA,对于任何正整数n,若可以得到(1,n)(1,n)均匀随机数生成方法,则说nn在集合AA中。

将面试题推广一下,就是给定一个1m1\sim m的均匀随机数生成器,是否能构造一个1n1\sim n的均匀随机数生成器?也就是说,mAm\in A是否可以推出nAn\in A

阅读全文 »

1918年,德国发明家亚瑟·谢尔比乌斯 (ArthurScherbius)发明了一种加密电子机械,名叫ENIGMA,在以后的年代里,它将被证明是有史以来最为可靠的加密系统之一,而对这种可靠性的盲目乐观,又使它的使用者遭到了灭顶之灾。
ENIGMA基于简单替换密码,加密原件有接线板、齿轮等,详情见wiki词条Enigma machineCryptanalysis of the Enigma

程序还原Enigma机器功能,用WPF写成,实现了数据绑定、控件重绘和继承等多种技术。点击此处下载

阅读全文 »

简介

本程序用C#写成,基于FreeImage库,支持从以下格式

1
[BMP,ICO,JPEG,JNG,KOALA,LBM,IFF,MNG,PBM,PBMRAW,PCD,PCX,PGM,PGMRAW,PNG,PPM,PPMRAW,RAS,TARGA,TIFF,WBMP,PSD,CUT,XBM,XPM,DDS,GIF,HDR,FAXG3,SGI,EXR,J2K,JP2,PFM,PICT,RAW]

到以下格式的批量转换

1
[BMP,ICO,JPEG,PBM,PGM,PNG,PPM,TARGA,TIFF,WBMP,GIF,J2K,JP2]

点击此处下载

阅读全文 »