GuuJiang 最近的时间轴更新
GuuJiang

GuuJiang

V2EX 第 58186 号会员,加入于 2014-03-14 16:18:47 +08:00
今日活跃度排名 4922
根据 GuuJiang 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
GuuJiang 最近回复了
使用 maven-dependency-plugin 插件里的 copy-dependices
@3dwelcome
除去我上面提到的扩展语法以外,标准的正则表达式仅能匹配正则语言,而“成对的括号”属于典型的非正则语言,从正则语言的定义就能断定不可能存在这样的表达式,我再举个非正则语言中的最简单例子
“若干个 a 后面跟若干个 b ,a 和 b 的数量相等”
不使用递归或计数等扩展语法,能够匹配这样的串的正则表达式也是不存在的
至于为什么一定要把这两种扩展语法独立出来讨论,上面以及解释过了,仅使用 DFA 是不可能实现这两种语法的
先说结论,标准的正则表达式是无法匹配的,非正则语言中的一个经典例子就是成对的括号
但是,今天的各种正则表达式引擎中增加了各种扩展语法,其中有两种语法能够解决这个问题,一种是递归引用,一种是带计数器操作,详情参见 https://www.regular-expressions.info/refrecurse.html
不过严格来说,这两种扩展语法已经不能算作正则表达式了,这两个语法相比起其它一些扩展语法有着本质的区别,其它一些扩展语法仅相当于语法糖,没有改变仅能匹配正则语言这一边界,但是这两种语法能够匹配部分非正则语言,从实现原理来说,匹配正则语言只需要用到 DFA ,而类似成对括号这种包含递归或计数的场景则必须使用下推自动机
3 天前
回复了 Higurashi 创建的主题 问与答 算法 4 中的双栈算数表达式求值算法
@Higurashi
1. 规约规则就是字面上的意思,你可以理解为“把(1+1)变成 2”的这个过程,也就是这个算法主要在干的事
2. 表示由 X 、exp 和 Y 三部分组成的一个字符串,其中 X 不含左括号(自然也不含右括号),exp 为一对括号包裹的最简表达式,Y 为剩余后缀,X 和 Y 可为空,这一段描述了这样一个事实“把一个表达式中的最左边一个右括号(由 X 中不含左括号来保证)及其匹配的左括号包含的这个表达式替换为该表达式的值,所得到的表达式对于该算法来说和原表达式是等价的”
举例说明的话就是一个形如 X(1+1)Y 的表达式等价于 X2Y
3. eval(s)表示 s 这个表达式的值,例如 eval("1+1")=2
3 天前
回复了 Higurashi 创建的主题 问与答 算法 4 中的双栈算数表达式求值算法
假设全都是二元运算符(一元运算符的情况同理,你可以自行补充)

先定义辅助符号<==>,读作“在该算法意义下等价”
s1 <==> s2 表示对于表达式 s1 和 s2 应用上述算法得到的结果相等

第一步,先证明规约规则 1
X...<exp>...Y <==> X...eval(exp)...Y
其中 X 不包含左括号,sub 形如(<v1><op><v2>),由入栈顺序可知,当碰到第一个右括号时,ops 的栈顶元素一定是 op ,vals 的栈顶元素一定是 v1 和 v2 ,根据算法实现,对 v1 和 v2 求值并重新入栈后,此时的栈状态、剩余表达式等和对右边的表达式应用算法时的状态是完全一致的,所以最终结果也是等价的
第二步,记 p(n)为含有 n 对括号的合法表达式,证明 p(n) <==> eval(p(n)),对 n 应用数学归纳法
1. 当 n=0 时,显然成立
2. 应用规约规则 1 可得 p(n+1) <==> p(n)
5 天前
回复了 AndyAO 创建的主题 程序员 无时无刻不在用“闭包”
找个厂子上班去吧,求你了
网吧提供会员充值服务是为了沉淀资金以及粘住客户,充给了联盟这两点好处都跟网吧没关系了
“趋近于”是极限发展早期的一种朴素的想法,也是常用的一种引领第一次接触极限的人进入这个世界的一种思考过程,但是这样容易造成两种普遍的误解,就是“极限一定伴随着一个过程”以及“极限只能无限接近而永远取不到”,这个阶段的极限是存在缺陷以及缺乏明确定义的,但是自从 epsilon-delta 语言诞生以后,极限就拥有了准确的定义,这时的极限就是一个确定的值,并且不再需要借助“趋近的过程”去理解

如果上面这段难以理解的话,我换一种非常**不严谨**但是可以解答你的疑问的表述方式
假如我们非要用“趋近于”来定义极限的话,可以表述成
f(x)“趋近于”一个值,这个值**等于**a ,所以 f(x)的极限**等于**a
而不是
f(x)“趋近于”一个值,这个值“趋近于”a

换句话说,“趋近于”已经出现在极限值的定义里了,而这个值本身是一个确定的值,不需要再用“趋近于”了

再次强调,使用“趋近于”来定义极限仅仅是为了便于理解,严谨的极限定义必须使用 epsilon-delta 语言
1. 没问题,m*n 矩阵可以认为由 m 个行向量组成,也可以认为由 n 个列向量组成,至于行列式。。。还是建议回去翻书吧,这个实在太基础了
2. 点乘和叉乘值得是向量之间的乘法,有的地方把通常意义上的矩阵乘法也叫做点乘,至于你发的这个图,应该是在展示矩阵乘法的其中一个步骤,即 A*B 中的元素[i,j]等于 A 中的第 i 个行向量与 B 中的第 j 个列向量的点积,这也解释了为什么把矩阵乘法也叫做点乘
3. 同上,不存在矩阵的叉乘
4. 同上
5. element-wise product ,逐元素相乘
27 天前
回复了 zxCoder 创建的主题 问与答 请教一个神经网络求函数最大值的问题
并不能,神经网络解决的问题是
求**一个函数**,使其对于测试集的输入得到的输出值(即 loss)最小
而你想要解决的问题是
对于一个**已知的函数**,求其在定义域上的最大值

看出区别了吧?问题的关键不在于最小和最大的区别,假如仅仅是最小和最大的区别的话确实可以通过一些手段把最大值问题变为最小值问题,而你这里压根就是两个完全不一样的问题

BTW ,你这个想法让我想到了一些刚开始学编程的初学者试图通过赋值语句来达到解方程的目的,这两种场景非常相似,都是有两个问题 A 和 B ,乍一看描述非常相似,实际上是完全不同的问题
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2773 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 9ms · UTC 11:53 · PVG 19:53 · LAX 03:53 · JFK 06:53
♥ Do have faith in what you're doing.