小编Che*_*eso的帖子

有人可以向我解释占有量词吗?(常用表达)

我正在阅读PCRE文档,它指的是占有量词,但没有明确或具体地定义它们.我知道贪婪的量词是什么,我知道什么是懒惰的量化器.但占有欲?

PCRE手册页似乎当使用术语而不定义它被欺骗.该手册页特别指出术语占有量词首先在Friedl的书中定义.嗯,这很好,但是我没有Friedl的书,在阅读手册页之间,我无法弄清楚占有量词与贪婪词的区别.

  • ?=零或一,贪心
  • ?? =零或一,懒惰
  • ?+ =零或一,占有欲
  • '+'=一个或多个,贪心
  • +?=一个或多个,懒惰
  • ++ =一个或多个,占有欲

regex pcre

15
推荐指数
1
解决办法
3440
查看次数

什么是GNU tar ././@LongLink"技巧"?

我读的是的"L"(76)焦油条目类型所使用的GNU tar和兼容GNU焦油公用事业表明,在归档中的下一个项目有一个"长"的名字.在这种情况下,条目类型为"L"的标题块通常编码名称././@LongLink.

我的问题是:描述的下一个块的格式在哪里?

tar存档的格式非常简单:它只是一系列512字节的块.在正常情况下,tar存档中的每个文件都表示为一系列块.第一个块是标题块,包含文件名,条目类型,修改时间和其他元数据.然后使用所需的512字节块来跟随原始文件数据.然后是下一个条目.

如果文件名长于适合标题块中分配的空间,gnu tar显然使用了所谓的"././@LongLink技巧".我找不到它的准确描述.

当条目类型为"L"时,我如何知道"长"文件名有多长?长名称是否限制为512字节,换句话说,什么适合一个块?

最重要的是:这在哪里记录?

interop gnu tar

15
推荐指数
2
解决办法
1万
查看次数

在emacs中,我可以设置*Messages*缓冲区以便尾巴吗?

基本上我希望*Messages *缓冲区在新消息到达时始终滚动到底部.

我能这样做吗?

我发现auto-revert-tail-mode但这适用于访问文件的缓冲区.当我在Messages缓冲区中尝试它时,它弹出一个错误:
auto-revert-tail-mode: This buffer is not visiting a file

emacs

15
推荐指数
2
解决办法
1890
查看次数

Array.GetLowerBound(int)的目的是什么?

我不明白Array.GetLowerBound()的目的.

它是否会返回非零?什么时候?怎么样?

谢谢.

.net arrays

14
推荐指数
2
解决办法
3750
查看次数

如何制作前向词,后向词,将下划线视为一个词的一部分?

在我的C#模式中,Mb和Mf绑定到{backward,forward} -word.

但是这些东西在下划线处停止,我有时将其用作成员变量的前缀.

如何让emacs将下划线视为单词字符?

c# emacs

14
推荐指数
3
解决办法
2356
查看次数

如何从Windows Vista上的批处理文件中检索文件的版本?

二进制文件中嵌入了一个版本 - 易于在Windows资源管理器中显示.

替代文字

如何从批处理文件中检索该文件版本?

version batch-file windows-vista

14
推荐指数
3
解决办法
4万
查看次数

有关使用15平方拼图的A*的问题

我正在尝试为15平方拼图构建一个A*求解器.

替代文字http://i49.tinypic.com/343r8ki.jpg

目标是重新排列瓷砖,使它们出现在自然位置.您一次只能滑动一个图块.拼图的每个可能状态是搜索图中的节点.

对于h(x)函数,我在所有图块中使用了图块与目标状态的错位的总和.在上面的图像中,5位于位置0,0,它属于位置1,0,因此它对h(x)函数贡献1.下一个区块是11,位于0,1,属于2,2,因此它对h(x)贡献3.等等.编辑:我现在明白这就是他们所谓的"曼哈顿距离",或" 出租车距离 ".

我一直在使用g(x)的步数.在我的实现中,对于状态图中的任何节点,g只是来自先前节点g的+1.

为了找到连续的节点,我只是检查在哪里可以移动拼图中的"洞".显示的拼图状态(aka节点)有3个邻居:洞可以向北,向西或向东移动.

我的A*搜索有时会收敛到20s,有时是180s的解决方案,有时根本不收敛(等待10分钟或更长时间).我认为我是合理的.我想知道我是否正确地模拟了g.换句话说,我的A*函数是否可能通过不是最短路径的路径到达图中的节点?

也许我没有等待足够长的时间?也许10分钟不够长?

对于完全随机的安排,(假设没有奇偶校验问题),A*解决方案将检查的平均排列数是多少?(请显示数学)

我将在我的代码中查找逻辑错误,但在此期间,任何提示?

(ps:它是用Javascript完成的).

另外,不,这不是CompSci的功课.这只是个人探索的事情.我只是想学习Javascript.


编辑:我发现运行时间高度依赖于启发式.我从有人提到的文章中看到了10x因子应用于启发式,它让我想知道 - 为什么10x?为何线性?因为这是在javascript中完成的,所以我可以修改代码以使用当前正在考虑的节点动态更新html表.这允许我在算法进展时查看算法.使用常规的出租车距离启发式,我看到它没有收敛.

排在前排有5个和12个,他们一直闲逛.我看到1,2,3,4爬进了最上面的一行,但随后它们会退出,其他数字会向上移动.我希望看到的是1,2,3,4爬到顶部,然后呆在那里.

我心想 - 这不是我亲自解决这个问题的方式.手动执行此操作,我解决了顶行,然后是2ne行,然后是第3行和第4行.

所以我调整了h(x)函数来对更高的行和"lefter"列进行更大的权重.结果是A*收敛得更快.它现在运行3分钟而不是"无限期".通过我所谈到的"偷看",我可以看到较小的数字爬到更高的行并留在那里.这不仅是正确的事情,它运行得更快.

我正在尝试一系列变化.很明显,A*运行时对启发式非常敏感.目前我发现的最佳启发式使用了dislocation * ((4-i) + (4-j))i和j是行和列的总和 ,而位错是出租车距离.

我得到的结果的一个有趣的部分:使用特定的启发式,我很快找到了一条路径,但它显然不是最短的路径.我认为这是因为我正在加权启发式.在一个案例中,我在10s内获得了178步的路径.我自己的手动努力产生了87个动作的解决方案.(超过10秒).更多的调查需要保证.

所以结果是我看到它收敛必须更快,并且路径绝对不是最短的.我不得不考虑更多.


码:

var stop = false; 
function Astar(start, goal, callback) {
    // start and goal are nodes in the graph, represented by 
    // an array of 16 ints.  The goal is:  [1,2,3,...14,15,0] 
    // Zero represents the hole. 

    // callback is a …
Run Code Online (Sandbox Code Playgroud)

algorithm graph a-star

14
推荐指数
1
解决办法
8669
查看次数

使用HttpWebRequest类

我实例化HttpWebRequest对象:

HttpWebRequest httpWebRequest = 
    WebRequest.Create("http://game.stop.com/webservice/services/gameup")
    as HttpWebRequest;
Run Code Online (Sandbox Code Playgroud)

当我将数据"发布"到此服务时,服务如何知道将数据提交到哪个Web方法?

我没有这个Web服务的代码,我所知道的是它是用Java编写的.

.net c# soap web-services

14
推荐指数
1
解决办法
3万
查看次数

不止一个emacs终端

我越来越习惯于从emacs内部做所有事情,但似乎eshell,shell和term只会运行一个实例.有没有办法在emacs中运行多个终端(最好是术语)?

emacs terminal

14
推荐指数
3
解决办法
2173
查看次数

emacs的首选JavaScript模式?是Yegge的js2模式吗?

有几种JavaScript模式:

  • Steve Yegge的js2-mode
  • jarl.el来自KarlLandström.
  • 浓咖啡?
  • 别的什么?

有没有人建议使用哪个?


编辑
2011年6月11日 - 这是一个古老的,过时的问题.仅供参考:Emacs v23现在包含一个javascript模式,它被称为js-mode,它基本上是一个重命名和更新的浓缩咖啡模式.我选择使用内置模式.

javascript emacs

13
推荐指数
2
解决办法
4289
查看次数