正则表达式 - 分组 & 前瞻 & 后瞻

之前在处理短信验证码问题的时候,碰到了关于验证码正则的问题,其中涉及到正则表达中的 前瞻(lookahead)后瞻(lookbehind),借此机会总结一下正则表达式的这种高级用法。

Tianma's avatar
Tianma 10月 04, 2018

炉石开包引发的血案(雾

昨天星苏直播开炉石卡包,并发起对应的竞猜,竞猜内容大致是: 50包卡包中,出现橙卡数目的奇偶性。 然后就有弹幕说:“哎呀,猜单双多没意思呀,可能性一样,赔率不会悬殊,没意思。” 那么,奇偶出现的可能性是一样吗?

Tianma's avatar
Tianma 7月 05, 2017

组合数的计算

组合数的计算虽然在一般的编程领域中不太能用到,但是在数学相关领域及ACM中还是有其用武之地的。那么,如何在程序中计算组合数呢?

Tianma's avatar
Tianma 7月 04, 2017

熊猫tv竞猜引发的组合问题

背景

今天晚上在看秋日播炉石的时候,发现最近熊猫tv加入了竞猜活动,可以通过该活动来获取竹子(熊猫tv中货币之一),嘛~ 这就是一娱乐活动嘛。

Tianma's avatar
Tianma 6月 19, 2017

排序-快速排序及其优化

概念

快速排序是交换类排序,采用分治思想,其基本原理是:通过一趟排序,将待排序数组分割成独立的两部分,其中一部分的关键字均比另一部分小;然后再分别对这两部分序列递归进行快速排序,从而使整个序列有序。

Tianma's avatar
Tianma 5月 06, 2016

排序-归并排序

概念

归并排序就是利用归并的思想实现的排序算法。归并排序的原理:假设初始序列含有n个记录,该序列可以看成n个有序的子序列,其中每个子序列的长度为1,然后两两归并,得到⌈n/2⌉(⌈x⌉表示不小于x的最小整数)个长度为2或者1的子序列,然后再两两归并,……,如此重复直到得到1个长度为n的有序序列为止。

Tianma's avatar
Tianma 4月 27, 2016

排序-堆排序

概念

: 堆是具有下列性质的完全二叉树:每个节点的值都大于或等于其左右孩子(如果存在的话)的值,称为最大堆;或者每个节点的值都小于或等于其左右孩子(如果存在的话)的值,称为最小堆。

Tianma's avatar
Tianma 4月 24, 2016

排序-希尔排序

概念

希尔排序是插入类排序算法,它的本质就是分组插入排序,它采取分割策略:将相距某个“增量”的记录组成一个子序列,保证在每个子序列内部分别进行插入排序后得到的结果是基本有序。

Tianma's avatar
Tianma 4月 21, 2016

排序-插入排序

概念

插入排序是插入类的排序算法,基本原理:将一个记录插入到已经排好序的有序表中,从而得到一个新的记录数增加1的有序表。

Tianma's avatar
Tianma 4月 21, 2016

排序-选择排序

概念

简单选择排序是选择类的排序,算法原理:第i次排序(1≤ i ≤n-1),从待排序的n-i+1个记录中, 进行n-i次关键字比较,从n-i+1个记录中选出最小的,并和第i-1个记录进行交换。

Tianma's avatar
Tianma 4月 21, 2016