« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
|
公告 |
本站技术贴除标明为“原创”的之外,其余均为网上转载,文中我会尽量保留原作者姓名,若有侵权请与我联系,我将第一时间做出修改。谢谢!
——既瑜 |
统计 |
blog名称:★既瑜★ 日志总数:183 评论数量:636 留言数量:-25 访问次数:1405944 建立时间:2005年3月12日 |
OICQ:215768265
njucs2001@hotmail.com
erichoo1982@gmail.com |
|
W3CHINA Blog首页 管理页面 写新日志 退出
[【技术文档】]55种网页常用小技巧(javascript) |
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border oncontextmenu=return(false)><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy
|
阅读全文(3529) | 回复(2) | 编辑 | 精华 | 删除 |
[【技术文档】]利用对手论证法证明中位数问题的比较次数下界(starfish) |
5个数通过6次比较求中位数的方法如下:
5个数之间的大小关系构成的一个树形图T。T中的一个结点代表一个数,而一条边代表它所关联的两个数的大小关系,T的根就是中位数。显然T中的一条边要由一次比赛来确定。在下面的图中,如果x大于y,则节点x在节点y的上方且x和y有一条边相连。另外,*表示一般的数,o表示下一次即将进行比较的两个数。
第1步,先任取两个数比较,结果为:
* | * o o *
第2步,再取另外两个数比较,结果为:
o o | | * * * 第3步,按照上图比较其中两个标记为o的数,比较结果只有一种情况:
* / \ * o | * &
|
阅读全文(3401) | 回复(2) | 编辑 | 精华 | 删除 |
[【技术文档】]具有障碍物的欧几里德最短路径问题 (starfish) |
这个问题是计算几何学中的一个经典课题:具有障碍物的欧几里德最短路径问题(ESP0)
ESPO可以描述如下:给定平面中两点s和t,及多边形障碍物集Ω={ω1,ω2,...,ωk},要求由s至t并避开所有障碍物的最短路径。
平面中的ESPO问题在多项式时间内可以求解,而E^3中具有多面体障碍物时确定最短路径长度的问题是NP难的。
一个简单的算法如下:由s到t的最短路径是一条折线链,该链的顶点是多边形障碍物的顶点。利用Dijkstra的最短路算法和可视图算法可以求解ESPO问题,其时间复杂性为0(n^2)。如果可视图是稀疏的,则在O(m+nlogn)时间内可以确定解,其中m是可视图边的数目。
对于该问题还有一些更好的算法,下面也一并作简单的介绍:利用最短路径映射SPM(s,Ω)在O(n(k+logn))时间内求解任意多边形障碍物的ESPO问题的方法是由Reif和Storer提出的。如果给定SPM(s,Ω),则在O(logn)时间内可以确定包含t的域,而在0(b+logn)时间内能够
|
阅读全文(2185) | 回复(0) | 编辑 | 精华 | 删除 |
[【技术文档】]微软面试题之数字谜题 (starfish) |
设有两个自然数m,n,2〈=m<=99。 S先生知道这两数的和s,P先生知道这两数的积p。他们两人进行了如下的对话: S:我知道你不知道这两个数是什么,但我也不知道。 P:现在我知道这两个数了。 S:现在我也知道这两个数了。 由这些条件,试确定m,n。
因为S知道两数之和,却由此推断P不知道两个数,所以说两数之和s一定不能拆分成两个素数的和,即m,n不可能都是素数,且m,n中不会有大于50的素数,否则的话m*n可以唯一分解,P知道了m,n的积就一定可以知道m,n了。
P从S的言语中能够判断出的信息是: 1。m,n不会全是素数; 2。m,n中不会有大于50的素数; 3。m,n之和不能拆成两个素数的和; 4。因为S自己也不知道这两个数是什么,所以这两个数的和一定小于99+98,否则S就可以知道这两个数是什么了。
满足以上条件的 s=m+n有以下的可能:
11 17 23 27 29 35 37 41 47<
|
阅读全文(2608) | 回复(1) | 编辑 | 精华 | 删除 |
[【技术文档】]回溯法解决喝酒问题(starfish) |
回溯法解决喝酒问题
先介绍一下回溯法的理论:
可用回溯法解决的问题P,通常能够表达为:
对于已知的、由n元组(x1,x2,……,xn)组成的一个状态空间 E={(x1,x2,……,xn) | xi ∈Si, i=1,2,..,n},给定关于n元组中的分量的一个约束集D,要求E中满足D的全部约束的所有n元组。其中Si是分量xi的定义域且|Si|有限,i=1,2,...n。我们称E中满足D的全部约束条件的任一n元组为问题P的一个解。
对于n元组(x1,x2,……,xn)中分量的约束,一般分为两类,一类是显约束,它给出对于n元组中分量的显式限制,比如当i≠j时xi≠xj;另一类是隐约束,它给出对于n元组中分量的隐式限制,比如:f(x1,x2,……,xn)≠ 0,其中f是隐函数。不过隐式显式并不绝对,两者可以相互转换。
解问题P的最朴素的方法是穷举法,即对E中的所有n元组,逐一地检测其是否满足D的全部约束。全部满足,才是问题p的解;只要有一个不满足,就不是问题P的解。显然,如果记m(i)=|S(i+1)|
|
阅读全文(2566) | 回复(0) | 编辑 | 精华 | 删除 |
[【技术文档】]遗传算法(starfish) |
遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术之一。
1.遗传算法与自然选择
达尔文的自然选择学说是一种被人们广泛接受的生物进化学说。这种学说认为,生物要生存下去,就必须进行生存斗争。生存斗争包括种内斗争、种间斗争以及生物跟无机环境之间的斗争三个方面。在生存斗争中,具有有利变异的个体容易存活下来,并且有更多的机会将有利变异传给后代;具有不利变异的个体就容易被淘汰,产生后代的机会也少的多。因此,凡是在生存斗争中获胜的个体都是对环境适应性比较强的。达尔文把这种在生存斗争中适者生存,不适者淘
|
阅读全文(2481) | 回复(0) | 编辑 | 精华 | 删除 |
[【技术文档】]NP问题和NPC问题(starfish) |
什么叫做NP问题,什么叫做NPC问题? 首先说明一下问题的复杂性和算法的复杂性的区别,下面只考虑时间复杂性。算法的复杂性是指解决问题的一个具体的算法的执行时
间,这是算法的性质;问题的复杂性是指这个问题本身的复杂程度,是问题的性质。比如对于排序问题,如果我们只能通过元素间的相互比较
来确定元素间的相互位置,而没有其他的附加可用信息,则排序问题的复杂性是O(nlgn),但是排序算法有很多,冒泡法是O(n^2),快速排序平
均情况下是O(nlgn)等等,排序问题的复杂性是指在所有的解决该问题的算法中最好算法的复杂性。问题的复杂性不可能通过枚举各种可能算法
来得到,一般都是预先估计一个值,然后从理论上证明。 为了研究问题的复杂性,我们必须将问题抽象,为了简化问题,我们只考虑一类简单的问题,判定性问题,即提出一个问题,只需要
回答yes或者no的问题。任何一般的最优化问题都可以转化为一系列判定性问题,比如求图中从A到B的最短路径,可以转化成:从A到B是否有长
|
阅读全文(3499) | 回复(0) | 编辑 | 精华 | 删除 |
[【技术文档】]带?和*的正则表达式的匹配(starfish) |
规定x[i]表示字符串x的第i个字符,注意,这里的下标从1开始。定义一个函数Match[i, j],表示特征串x的长度为i的前缀与字符串的s的长度为j的前缀是否匹配。经过分析可以写出如下的递归公式: Match[i,j] = Match[i-1, j-1], if x[i] = '?' = Match[i-1, 1..j]中任何一个等于true, if x[i]='*' = Match[i-1, j-1] and (x[i] = s[j]), if x[i]不是通配符 该递归公式的边界条件是 Match[0,0] = true, Match[i,0] = Match[i-1,0], if x[i] = '*'
|
阅读全文(2051) | 回复(0) | 编辑 | 精华 | 删除 |
[【技术文档】]A* 算法求解最短路径(starfish) |
A* 算法求解最短路径 ---------------------------------------------------------------------------- ---- 近来不少的朋友问我关于 A* 算法的问题, 目的是写一个搜索最短路径的程序. 这 个在鼠标控制精灵运动的游戏中(不算智冠出的那些用鼠标充当键盘方向键的弱智 RPG) 大量使用,尤其是即时战略类的. 但是我个人认为 A* 算法只适合处理静态路径求解, 对即时战略游戏中大量对象堵塞过道时,疏通交通很难实现(也不是不能实现, 这需要一 个相当好的估价函数,且不能一次搜索路径) 我奇怪的是, A* 算法应该是算法课的基础知识了, 任何一个系统学习过算法的人都 应该了解, 本不应该我在这里乱写一通, 大家随意翻本将计算机算法的书, 就应该看的 到. (将 AI 的书了更是少不了) 不过既然许多朋友问起, 在各个讨论组, BBS 等地方也 屡次见人提到, 特花一下午时间完成本文和附带的程序, 满足我们广大业余游戏制作爱
|
阅读全文(3517) | 回复(0) | 编辑 | 精华 | 删除 |
|