随笔分类 - 数据结构与算法
Data Structure and Algorithms
一个小题目
摘要:前几天,学校 BBS 上有人提了一个小问题,本来没想做,后来看了看回文,不自觉的考虑了一下。题目如下:有 36 匹马,每次比赛只能有 6 匹马参加,最少进行几次比赛可以得到 36 匹马中跑得最快的前 6 名。限制有:1)没有表 (每次比赛只能记名次);2)每匹马的速度在任何比赛中速度不变。我的思路:1) 36 匹马分 6 组,每组 6 匹,进行初轮比赛,记录各组内部名次;2) 根据初赛结果,把每组...
阅读全文
1000 的阶乘有几位数? - 后续, 求解
摘要:这是在 2006 年 11 月 17 日浏览小百合时得到的,当时上不来,就暂存在我的信箱里了。南京大学小百合站,Algorithm 版,x->18->1 和 x->18-2。x->18->1:(两处红色标记是我个人加上的,怀疑原文有误,即若有 10 和 100,则前面不应有 90 和 1800)令结果为 xx=log2+log3+...+log9 +90+log1.1...
阅读全文
排列组合
摘要:前几天同学提到编程实现排列组合的算法, 要能把排列组合的结果输出. 想了一段时间未果, 同学的思路是使用递归, 比如求解找出 n 个数中 m 个数的排列和组合:step a) 求解后 n-1 个数中 m 个数的排列组合; // P(n-1, m) 或 C(n-1, m)step b) 求解后 n-1 个数中 m-1 个数的排列组合; // P(n-1, m-1) 或 C(n-1, m-1)基本情况...
阅读全文
模拟"九连环"的小算法
摘要:前几天无聊, 舍友拿来一玩具"九连环". 把玩之中, 觉得过程类似"汉诺塔", 遂考虑写个程序模拟一下.
其实过程挺简单的, 关键在于, "九连环"中除了第一个环, 其它所有的环都套着它前面的环, 因此, 要操作第 n 个环 (安装或者拆卸), 则第 n-1 个环必须在上面, 而第 n-2 个之前的所有环都不能在上面.
两个关键函数:
阅读全文
1000 的阶乘有几位数?
摘要:前一段时间看到一个往年程序竞赛的题解, 有一个题目说的是求 100 的阶乘末尾有多少个 0. 题解中给出的讲解提到, 一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数, 而 2 的个数是远远多余 5 的个数的, 因此求出 5 的个数即可. 题解中给出的求解因子 5 的个数的方法是用 n 不断除以 5, 直到结果为 0, 然后把中间得到的结果累加. 例如...
阅读全文
Big Integer Multiplication
摘要:Recently, I began to review data structure and algorithms. Basicly I followed cuifenghui's steps. Yesterday I viewed his Big Integers Multiplication programs. Well, the idea is easy and great: use two char arrays to store two big numbers, then multiply them byte by byte. The following is my java version of his code.
阅读全文