代码改变世界

实用算法实现-第 32 篇 其它

2012-02-29 00:22  myjava2  阅读(187)  评论(0编辑  收藏  举报

32.1    平衡三进制

       PKU JudgeOnline, 1702, Eva'sBalance是一个平衡三进制问题的实例。将一个某进制数转换为平衡三进制数的方法为:先转化为用0,1,2表示的3进制,然后通过“借位”转换。也即:

       若对应的系数为2,则变为-1,高一位+1。

       若对应的系数为3,则变为0,高一位+1。

       为0或1时不变

32.1.1   实例

PKU JudgeOnline, 1702, Eva's Balance.

32.1.2   问题描述

有一个天平和一套重量为3^n的砝码,每种砝码只有一个。给定一个重量,给出维持天平平衡的砝码和重物的放置方法。

32.1.3   输入

3

9

5

20

32.1.4   输出

empty9

1,39

1,9 3,27

32.1.5   程序


32.2    按位运算

PKU JudgeOnline, 3652, Persistent Bits.

32.3    分数的循环小数表示法

32.3.1   实例

任一分数1/n  (2 ≤ n ≤ 100),均可表示为循环小数的形式。例如:

1/2= .5

1/3= .(3)

1/6= .1(6)

求1/n的循环小数表示形式中k(0 ≤ k ≤ 9)出现的次数。

32.3.2   输入

35

73

70

32.3.3   输出

1

1

0

32.3.4   分析

由于这里的n仅是一个两位数,所以这个题目显得比较简单。

32.3.5   程序

32.1    参考资料

本文中没有加以注释的算法在[i]中都可以找到。本文中没有介绍的算法论述、推导也基本可以在该文中找到。

[ii]文对状态空间搜索的讨论十分细致、深入,图示也非常清晰明了,写得非常不错。

[iii]文也是介绍人工智能的非常不错的书。

[iv]文内容丰富,不过由于很多问题没有详细引入数学模型和推导证明,所以稍显复杂难懂。

[v]文中对图算法进行了综合、精细的论述,其中最惹人注目的是其中对于算法的数学模型分析,如其中的第四章。但是该文比较难懂。

[vi]文中对欧拉回路、欧拉通路、有向欧拉回路、有向欧拉通路进行了介绍。不过其中的算法描述不够精炼、清晰。

[vii]文全面介绍了最小割模型的原理和应用。

 [viii]介绍了图。

本文的很多算法的实现很多都没有优化。例如Prim算法中,从集合中取出最小的一条边,并从集合中删除的实现,性能上就远不及斐波那契堆的实现。还有包含这种操作的其它算法也是如此。

本文章欢迎转载,请保留原始博客链接http://blog.csdn.net/fsdev/article



[i] Introduction to Algorithms, Second Edtion. Thomas H.Cormen, CharlesE.Leiserson, Ronald L.Rivest, Clifford Stein.

[ii] Artificial Intelligence, Structures and Strategies for Complex ProblemSolving. Geoge F. Luger.

[iii] Artificial Intelligence, A Modern Approach. Stuart Russell, PrterNorvig.

[iv] 算法艺术与信息学竞赛。刘汝佳,黄亮。清华大学出版社。

[v] 网络算法与复杂性分析,第二版。谢政。国防科技大学出版社。

[vi] Discrete Mathematics, Fifth Edition. John A.Dossey, Albert D.Otto,Lawrence E.Spence, Clarles Vanden Eynden.

[vii] 最小割模型在信息学竞赛中的应用。胡伯涛(Amber)。

[viii] Introduction to Gragh Theorty. Douglas B.West.