
算法
文章平均质量分 75
云原生技术分享
同步云原生社区博客分享。
展开
-
A*算法应用举例
A*算法应用举例 算法的理论意义在于给出了求解最佳解的条件h(n)≤h*(n)。对给定的问题,函数h*(n)(n是变量)在问题有解的条件下客观上是存在的,但在问题求解过程中不可能明确知道,因此对实际问题,能不能使所定义的启发函数满足下界范围条件?如果困难很大,那么算法的实际应用就会受到限制。下面将通过几个应用实例来说明这个问题。 (1)八数码问题 很容易证明h(n)=P(n)原创 2011-12-19 22:33:28 · 6756 阅读 · 0 评论 -
【A*算法】滑动积木游戏
滑动积木块游戏 Description滑动积木块游戏的棋盘结构及某一种将牌的初始排列结构如图1所示。 图1. 3滑块游戏的初始格局其中,B表示黑色将牌,W表示白色将牌,E表示空格。我们称将牌的排列结构称为格局,而根据单色将牌的个数,将游戏分别称为3滑块或4滑块游戏等。所以,上图就是3滑块游戏的初始格局。我们可以用字符串来代表格局,代表上图中初始格局的原创 2011-12-19 22:38:12 · 12838 阅读 · 3 评论 -
分治法的归并排序(Java)
/*分治法——归并排序 * 二路归并排序的分治策略是:(1)划分:将待排序序列r1, r2, …, rn划分为两个长度相等的子序列r1, …, rn/2和rn/2+1, …, rn;(2)求解子问题:分别对这两个子序列进行排序,得到两个有序子序列;(3)合并:将这两个有序子序列合并成一个有序序列。 */public class MergeSort { /** * @param原创 2011-12-22 15:35:49 · 1598 阅读 · 0 评论 -
求最大公约数
/* * Calculate the Greatest Common Divisor * Euclid的辗转相除法 * gcd(a,b)=gcd(b,a) * gcd(a,b)=gcd(-a,b) * gcd(a,0)=|a| * gcd(a,b)=gcd(b,a%b) 0<=a%b<b */public class Gcd { public static int gcd(int原创 2012-01-17 21:51:21 · 665 阅读 · 0 评论 -
Josephus Circle 约瑟夫环
import java.util.ArrayList;/** * Josephus circle * @author jimmy * */public class Josephus { //Create Josephus circle public Josephus(int number,int start,int distance) { ArrayList list = n原创 2012-01-18 19:30:48 · 892 阅读 · 0 评论 -
动态规划法解决TSP问题(C++)
/*旅行商问题(Traveling Saleman Problem,TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。字面上的理解是:有一个推销员,要到n个城市推销商品,他要找出一个包含所有n个城市的具有最短路程的环路。解决TSP问题的思想有回溯法、贪心法、动态规划法等。如原创 2011-12-19 10:32:01 · 17760 阅读 · 3 评论 -
第三届“蓝桥”杯全国软件设计大赛Java本科组
Q1: 黄金分割数0.618与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子.... 黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,我们取它的一个较精确的近似值:0.618034原创 2012-04-07 23:09:14 · 3422 阅读 · 6 评论 -
广州百田软件研发笔试题:求一套扑克牌中怎样出最后剩下的单牌数最少,只能出顺子和对(2/3/4)
题目是这样的:有n张扑克牌,每张牌的取值范围是:2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13),A(14)。(同样的牌的数目不超过4张)。可以出对子,三张一样的,四张一样的或者顺子,怎样出最后剩下的单牌最少。 思路:首先考虑找出顺子。我的思路其实很简单,首先就是要去掉重复的牌,因为同样的顺子之算一个,显然JAVA中的Set很适合这个工作。同时又需要对原创 2013-03-16 22:55:55 · 3344 阅读 · 0 评论 -
使用Python瞬间生成超大文件
import timedef creatfilesize(n): local_time = time.strftime("%Y%m%d%H%M%S",time.localtime()) file_name = "E:\\"+str(local_time)+".txt" bigFile= open(file_name, 'w') bigFile.seek(1024*原创 2013-08-06 19:48:59 · 1793 阅读 · 0 评论