Redian新闻
>
素数的数学递归定义的问题
avatar
素数的数学递归定义的问题# WaterWorld - 未名水世界
x*p
1
我们假设不知道什么叫素数,我们对正整数集合进行如下的定义来定义素数。(这是从
链接上取下来的,也是I63的定义)
(1) 1不是素数 (base case)
(2) a是素数当且仅当a不能被任何小于它的素数整除。
我曾经多次指出,这个定义在用素数定义素数,是不正确的。但看到很多的反驳如下。
1不是素数, 我们考察2,发现小于2的素数集合为空集,于是2为素数。以此再往下递归
,得出所有素数的定义。我想昨天深入讨论此内容的人,都不会反对我的总结吧。关于
"小于2的素数集合为空集"推出"2为素数",因我的不慎,还做出过郑重道歉。
好,我们仿造这种递归定义,来定义偶数。
我们假设不知道什么叫偶数,我们对非负整数集合进行如下的定义来定义偶数。
(1) 0不是偶数 (base case)
(2) a是偶数当且仅当a与任何小于它的偶数之差为2的倍数。
我从base case开始。0不是偶数。我们考察下一个数1,发现小于1的偶数集合为空集,
于是1为偶数。以此递归,我们得出的偶数是1, 3, 5, 7, ...。实际上,这与我们传统
定义的偶数完全不一样。
大家发现问题在那里么?
avatar
f*i
2
0怎么不是偶数
avatar
x*p
3
请I63, mdmx等都过来讨论
avatar
x*p
4
那1为什么不是素数?

【在 f*******i 的大作中提到】
: 0怎么不是偶数
avatar
x*p
5
我开此贴的目的,是为了证明,对一个概念的定义,是不能用递归方法来进行的,这也
是I63开的高楼的错误所在。因为递归定义的base case的判断,就是来源于一个概念的
原始定义。
avatar
x*p
6
或者说,脱离原始的定义,递归定义根本无法成立。
avatar
x*p
8
我看过,凭我学数学的直觉,这些递归定义都是建立在对原始定义认可的基础之上的。
所以说,纯粹的递归定义本身是用概念定义概念,本身就是矛盾的。
举这个链接的一例来说,定义自然数。先申明1是自然数,然后递归说如果N是自然数,
那N+1也是自然数。但这个定义忽略了一条,就是为什么这么肯定1是自然数?这是因为
自然数本身的定义,就证明了1是自然数。离开了自然数的本身定义,这个递归定义没有
任何的意义。
avatar
x*p
9
昨天我的很多回帖,许多人看不懂。我质疑在递归定义中1为什么不是素数,许多人觉
得这是再明显不过的事情,可是在离开素数原始定义的前提下,这却很不明显。所以我
今天开贴举一反例,证明递归定义的错误所在。
avatar
f*i
10
说说你怎么严密定义自然数吧
皮亚诺公理体系里,自然数就是递归定义的
(当然,1这个base是要先人为定死的)

没有

【在 x*****p 的大作中提到】
: 我看过,凭我学数学的直觉,这些递归定义都是建立在对原始定义认可的基础之上的。
: 所以说,纯粹的递归定义本身是用概念定义概念,本身就是矛盾的。
: 举这个链接的一例来说,定义自然数。先申明1是自然数,然后递归说如果N是自然数,
: 那N+1也是自然数。但这个定义忽略了一条,就是为什么这么肯定1是自然数?这是因为
: 自然数本身的定义,就证明了1是自然数。离开了自然数的本身定义,这个递归定义没有
: 任何的意义。

avatar
x*p
11
好,我就说说如何定义自然数。我们要从数学基础的集合论公理做起。先定义空集,而
这个空集对应于数字0。然后定义包括空集的集合,这个集合对应数字1。然后进行集合
的运算,定义加法,得到一个加法半群,就成为自然数集体。再扩展成加法群,就成了
整数集合。再在这个集合上定义乘法,成为环,再将乘法演变为乘法群,最终成为有理
数域。在这个有理数域的基础上用极限的概念求闭集,成为实数域。
avatar
m*x
12
不带像lz这样煽自己耳光的好不好
发信人: xiongyp (dreamrain), 信区: WaterWorld
标 题: Re: 关于使用反证法证明 "素数有无穷多个"
发信站: BBS 未名空间站 (Thu May 23 17:23:27 2013, 美东)
我承认,但这个等价不明显,需要有完备性的证明。我同样给出的另一个类似的递归定
义,就不完备。对于一个不明显的递归定义,有必要进行说明或者证明。楼主在这个问
题上一笔跳过,是不严谨的。

发信人: xiongyp (dreamrain), 信区: WaterWorld
标 题: Re: 有人认为反证法的证明过程中不能用某些定理,某些等价定义,我问
发信站: BBS 未名空间站 (Fri May 24 09:02:54 2013, 美东)
等价定义可以,但I63对素数的递归定义,与素数本身的定义不等价。
,.
avatar
s*e
13
气死康托尔

【在 x*****p 的大作中提到】
: 好,我就说说如何定义自然数。我们要从数学基础的集合论公理做起。先定义空集,而
: 这个空集对应于数字0。然后定义包括空集的集合,这个集合对应数字1。然后进行集合
: 的运算,定义加法,得到一个加法半群,就成为自然数集体。再扩展成加法群,就成了
: 整数集合。再在这个集合上定义乘法,成为环,再将乘法演变为乘法群,最终成为有理
: 数域。在这个有理数域的基础上用极限的概念求闭集,成为实数域。

avatar
x*p
14
昨天我也被绕晕了,所以后来说洗睡了。想明白这个递归定义的问题,今天再来发贴。
avatar
x*p
15
你们也不用顾左右而言他,先说说我1楼的贴子,说的对不对?
avatar
x*p
16
再说我多次强调2是素数的这个结论不明显。当时被绕晕了,只是直觉不明显。今天才
找到问题所在。
avatar
m*x
17
你的定义的定义出来的偶数是我们所说的奇数。但定义仍然是well-defined,只不过
和公认定义不等价罢了。

【在 x*****p 的大作中提到】
: 昨天我也被绕晕了,所以后来说洗睡了。想明白这个递归定义的问题,今天再来发贴。
avatar
s*e
18
看到你认为皮亚诺公理是错的,我就没兴趣看了。

【在 x*****p 的大作中提到】
: 你们也不用顾左右而言他,先说说我1楼的贴子,说的对不对?
avatar
m*x
19
因为你给的定义,奇数偶数都满足,如果不考虑basecase的话
avatar
m*x
20
最关键的一点,为什么0不是偶数?
avatar
f*i
21
生活中的自然数2,3,4,5,6... 就是递归定义的(从小时候数数开始),自是一般人没有意
识都这点而已.
当然, 1(base case)这个概念的生成,是哲学性的
avatar
x*p
22
我没否认过皮亚诺公理,这个公理先定义了1为自然数。我只是从集合论的公理,来定
义1为自然数罢了,没什么矛盾的。集合论的公理体系与皮亚诺公理不矛盾。

【在 s**e 的大作中提到】
: 看到你认为皮亚诺公理是错的,我就没兴趣看了。
avatar
x*p
23
这就如同我问,为什么1不是素数?

【在 m**x 的大作中提到】
: 最关键的一点,为什么0不是偶数?
avatar
s*e
25
我没说矛盾,我是说你认为"皮亚诺公理第一条:1是自然数"需要证明。这是不对的。

【在 x*****p 的大作中提到】
: 我没否认过皮亚诺公理,这个公理先定义了1为自然数。我只是从集合论的公理,来定
: 义1为自然数罢了,没什么矛盾的。集合论的公理体系与皮亚诺公理不矛盾。

avatar
m*x
26
我的意思是,正因为你说0不是偶数,所以造成了和公认偶数定义的不同。你可理解?
你定义出来的偶数实际上是奇数。还有什么问题?

【在 x*****p 的大作中提到】
: 这就如同我问,为什么1不是素数?
avatar
f*i
27
a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除
已经"硬性"规定了1不是素数
你认为这个跟一般的定义不等价?

【在 x*****p 的大作中提到】
: 这就如同我问,为什么1不是素数?
avatar
m*x
28
lz第一没有说明递归定义为什么就一定不严谨,第二没有说明为什么l63的素数定义和
公认素数定义不等价。
avatar
x*p
29
这正是我要你明白的东西。也就是说,在递归定义中的base case,必须符合这个概念
的原始定义。
如果一个概念没有原始的定义,任何纯粹的递归定义都站不住脚。
我们有了素数的原始定义,才发现1不是素数,结果才衍生出了递归定义。也就是说,
原始的素数定义,能衍生出素数的递归定义,其实应该算推论。但在我们还不知道什么
叫素数的前提下,这个递归定义不成立。
同样,你认为0不是偶数的判断是错误的,这就是来源于你对偶数有个原始定义(2的倍
数)的判断。你在判断0是否是偶数的问题上,是不依赖于我后面的递归定义的。
我说这些,不知你看没看懂?

【在 m**x 的大作中提到】
: 我的意思是,正因为你说0不是偶数,所以造成了和公认偶数定义的不同。你可理解?
: 你定义出来的偶数实际上是奇数。还有什么问题?

avatar
x*p
30
这个1不是素数,并不是硬性规定的,而是根据素数本身的原始定义得到的。

【在 f*******i 的大作中提到】
: a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除
: 已经"硬性"规定了1不是素数
: 你认为这个跟一般的定义不等价?

avatar
m*x
31
我只知道l63定义的素数等价于公认的素数,你定义的偶数等价于公认的非负奇数。仅
此而已。不能因为你定义的偶数不是偶数就说递归定义不对。

【在 x*****p 的大作中提到】
: 这正是我要你明白的东西。也就是说,在递归定义中的base case,必须符合这个概念
: 的原始定义。
: 如果一个概念没有原始的定义,任何纯粹的递归定义都站不住脚。
: 我们有了素数的原始定义,才发现1不是素数,结果才衍生出了递归定义。也就是说,
: 原始的素数定义,能衍生出素数的递归定义,其实应该算推论。但在我们还不知道什么
: 叫素数的前提下,这个递归定义不成立。
: 同样,你认为0不是偶数的判断是错误的,这就是来源于你对偶数有个原始定义(2的倍
: 数)的判断。你在判断0是否是偶数的问题上,是不依赖于我后面的递归定义的。
: 我说这些,不知你看没看懂?

avatar
m*x
32
当然是硬性规定。1难道不符合素数只能被1和自身整除的定义?

【在 x*****p 的大作中提到】
: 这个1不是素数,并不是硬性规定的,而是根据素数本身的原始定义得到的。
avatar
f*i
33
是的,等价定义好了,正确了,就可以抛开原定义直接没有任何犹豫地使用了,有什么问题吗

【在 x*****p 的大作中提到】
: 这正是我要你明白的东西。也就是说,在递归定义中的base case,必须符合这个概念
: 的原始定义。
: 如果一个概念没有原始的定义,任何纯粹的递归定义都站不住脚。
: 我们有了素数的原始定义,才发现1不是素数,结果才衍生出了递归定义。也就是说,
: 原始的素数定义,能衍生出素数的递归定义,其实应该算推论。但在我们还不知道什么
: 叫素数的前提下,这个递归定义不成立。
: 同样,你认为0不是偶数的判断是错误的,这就是来源于你对偶数有个原始定义(2的倍
: 数)的判断。你在判断0是否是偶数的问题上,是不依赖于我后面的递归定义的。
: 我说这些,不知你看没看懂?

avatar
m*x
35
你就说为什么lz的递归定义不对吧,别尽beat around the bush。你说不等价,你必须
证明,而不是说空话。我可以证明其等价:即A=>B & B=>A

【在 x*****p 的大作中提到】
: 这正是我要你明白的东西。也就是说,在递归定义中的base case,必须符合这个概念
: 的原始定义。
: 如果一个概念没有原始的定义,任何纯粹的递归定义都站不住脚。
: 我们有了素数的原始定义,才发现1不是素数,结果才衍生出了递归定义。也就是说,
: 原始的素数定义,能衍生出素数的递归定义,其实应该算推论。但在我们还不知道什么
: 叫素数的前提下,这个递归定义不成立。
: 同样,你认为0不是偶数的判断是错误的,这就是来源于你对偶数有个原始定义(2的倍
: 数)的判断。你在判断0是否是偶数的问题上,是不依赖于我后面的递归定义的。
: 我说这些,不知你看没看懂?

avatar
x*p
36
什么叫等价定义?在你用递归方法定义素数的时候,并不知道什么样的数叫素数。但却
硬性规定了1不是素数。对于这种base case的由来,如果所有的递归定义都仅仅是”硬
性“来规定的,那就会出问题。比如我1楼给的偶数的定义,我们在完全不知道何为偶
数的情况下,表面上的定义是没问题的。却定义出一堆奇数。
当然,这种base case如果是符合这个概念的原始定义的,由递归推导出来的定义就没
有问题。
所以,我讲半天,一会说素数定义等价,一会又说不等价,其实就是在质疑用递归方法
定义中的逻辑错误。你所说的证明两个等价,是在明白什么叫素数,在素数有了原始定
义基础之上发生出来的等价关系。
最后问一句吧。我们在完全不知道一个概念的情况下,用递归来定义这个概念,你是如
何判断这个base case的?

【在 m**x 的大作中提到】
: 你就说为什么lz的递归定义不对吧,别尽beat around the bush。你说不等价,你必须
: 证明,而不是说空话。我可以证明其等价:即A=>B & B=>A

avatar
x*p
37
当然,有一种情况,base case的定义没有疑问,就是这个base case来自于一个公理。
比如用皮亚诺公理递归定义自然数。在base case中定义1为自然数。
avatar
m*x
38
等价就是A=>B且B=>A,哪来那么多废话。用l63定义可以证明2为素数,我也证明了。你
还不知道什么是素数?

【在 x*****p 的大作中提到】
: 什么叫等价定义?在你用递归方法定义素数的时候,并不知道什么样的数叫素数。但却
: 硬性规定了1不是素数。对于这种base case的由来,如果所有的递归定义都仅仅是”硬
: 性“来规定的,那就会出问题。比如我1楼给的偶数的定义,我们在完全不知道何为偶
: 数的情况下,表面上的定义是没问题的。却定义出一堆奇数。
: 当然,这种base case如果是符合这个概念的原始定义的,由递归推导出来的定义就没
: 有问题。
: 所以,我讲半天,一会说素数定义等价,一会又说不等价,其实就是在质疑用递归方法
: 定义中的逻辑错误。你所说的证明两个等价,是在明白什么叫素数,在素数有了原始定
: 义基础之上发生出来的等价关系。
: 最后问一句吧。我们在完全不知道一个概念的情况下,用递归来定义这个概念,你是如

avatar
m*x
39
对我32楼视而不见么?

【在 x*****p 的大作中提到】
: 什么叫等价定义?在你用递归方法定义素数的时候,并不知道什么样的数叫素数。但却
: 硬性规定了1不是素数。对于这种base case的由来,如果所有的递归定义都仅仅是”硬
: 性“来规定的,那就会出问题。比如我1楼给的偶数的定义,我们在完全不知道何为偶
: 数的情况下,表面上的定义是没问题的。却定义出一堆奇数。
: 当然,这种base case如果是符合这个概念的原始定义的,由递归推导出来的定义就没
: 有问题。
: 所以,我讲半天,一会说素数定义等价,一会又说不等价,其实就是在质疑用递归方法
: 定义中的逻辑错误。你所说的证明两个等价,是在明白什么叫素数,在素数有了原始定
: 义基础之上发生出来的等价关系。
: 最后问一句吧。我们在完全不知道一个概念的情况下,用递归来定义这个概念,你是如

avatar
x*p
40
你还是没明白。你在看我的定义的时候,脑子里已然有了奇偶数的概念。这样才会问我
为什么0不是偶数。同样,当你已有了素数的概念的时候,我问你为什么说1不是素数,
你觉得这个问题很可笑。

【在 m**x 的大作中提到】
: 因为你给的定义,奇数偶数都满足,如果不考虑basecase的话
avatar
x*p
41
说了半天很多人还是不明白。请回答一个问题吧。当你完全不知道什么叫素数的时候,
如何判断1不是素数?
avatar
m*x
42
对我32楼视而不见么?

【在 x*****p 的大作中提到】
: 说了半天很多人还是不明白。请回答一个问题吧。当你完全不知道什么叫素数的时候,
: 如何判断1不是素数?

avatar
j*q
43
大哥。。你的递归定义没有问题啊,只是你说的偶数其实是公认的奇数而已,原因就在
于你的base case和本该定义偶数的base case不一样。
那么你是不是认为把你的base case改为0是偶数,你的递归定义仍然是错的?因为你不
知道什么偶数?

【在 x*****p 的大作中提到】
: 说了半天很多人还是不明白。请回答一个问题吧。当你完全不知道什么叫素数的时候,
: 如何判断1不是素数?

avatar
C*r
44
这个id…好眼熟

【在 j****q 的大作中提到】
: 大哥。。你的递归定义没有问题啊,只是你说的偶数其实是公认的奇数而已,原因就在
: 于你的base case和本该定义偶数的base case不一样。
: 那么你是不是认为把你的base case改为0是偶数,你的递归定义仍然是错的?因为你不
: 知道什么偶数?

avatar
d*k
45
为什么自然数不从0开始呢?
为什么平面几何里任意一点到另外任意一点可以画直线?
为什么概率是从0到1呢?

【在 x*****p 的大作中提到】
: 说了半天很多人还是不明白。请回答一个问题吧。当你完全不知道什么叫素数的时候,
: 如何判断1不是素数?

avatar
x*p
46
就象我完全不知道什么叫偶数的情况下如何判断0是不是偶数。其实就一句话,硬性规
定。
这个硬性规定,如果来自公理系统,比如说皮亚诺公理,我无话可说。但集体论公理却
给了另外一种解释罢了。
如果这个硬性规定,不是来自于什么公理,那么由此推出来的某个概念,可能就不同于
我们已认知的那个概念。比如我举的例子,进行了不同于我们认知的硬性规定,结果把
偶数的定义变成了一堆奇数。

【在 x*****p 的大作中提到】
: 说了半天很多人还是不明白。请回答一个问题吧。当你完全不知道什么叫素数的时候,
: 如何判断1不是素数?

avatar
j*q
47
您的id更眼熟了~~以前搀和过zl帖子,不过参与者实在太无聊,就没follow up了,这
个帖子有意思多了。。。。
不过我真诚的劝您一句,别搀和这个了,zl那事您可能是对的,但这事。。您错了。。
。多多google有益身心健康

【在 C**********r 的大作中提到】
: 这个id…好眼熟
avatar
x*p
48
我开贴给了素数无穷的另一证明。

【在 j****q 的大作中提到】
: 您的id更眼熟了~~以前搀和过zl帖子,不过参与者实在太无聊,就没follow up了,这
: 个帖子有意思多了。。。。
: 不过我真诚的劝您一句,别搀和这个了,zl那事您可能是对的,但这事。。您错了。。
: 。多多google有益身心健康

avatar
x*p
49
试图用很多方法,总是让人不明白。我希望我下面的说法,能让大家明白问题所在。
我如果要用递归定义素数,为了不与素数的原始定义冲突,让大家对”素数“这个概念
产生歧义,我在下面的全程不提素数两字。
我们定义正整数集体的一个子集X,满足下面的条件
(1) 1不属于X
(2) x属于X,当且仅当x不能被任何X中小于x的数整除
通过这个递归定义,我们得到了集合,通过比较我们传统定义的素数集合,发现二者是
完全一样的。于是我们称由此递归定义出来的集合中的元素,为素数。
我一直坚持的就是,在完全不知道素数定义的前提下,递归定义中也不应该有”素数“
这个词。
在1楼举的偶数的例子,也如同上面用集合办法定义,得出来的集合,发现和我们认知
的奇数集合是完全一样的,所以得出来的,就不能称为偶数,而称为奇数。只要我的递
归定义中不出现”偶数“这样的字眼,就没问题了。
如果还看不懂,我就无语了,也不用回贴了。
avatar
l*3
50
我来了~
我先这么问你吧, 一步一步来.
在主流数学公理,定义 (包括素数的定义),逻辑体系下, 你说说以下这个陈述对不对:
"a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除"
注意, 我只要求你把这句话当做一个普通的命题来看, 并不是问你这句话能不能定义出
素数. 假设我先不关心这句话能否给出素数的定义 (素数本身是有主流定义的, 这一点
你承认吧?), 我只问你这个命题的正确性.
所以你只需回答 "正确" 或者 "错误".
谢谢!

【在 x*****p 的大作中提到】
: 我们假设不知道什么叫素数,我们对正整数集合进行如下的定义来定义素数。(这是从
: 链接上取下来的,也是I63的定义)
: (1) 1不是素数 (base case)
: (2) a是素数当且仅当a不能被任何小于它的素数整除。
: 我曾经多次指出,这个定义在用素数定义素数,是不正确的。但看到很多的反驳如下。
: 1不是素数, 我们考察2,发现小于2的素数集合为空集,于是2为素数。以此再往下递归
: ,得出所有素数的定义。我想昨天深入讨论此内容的人,都不会反对我的总结吧。关于
: "小于2的素数集合为空集"推出"2为素数",因我的不慎,还做出过郑重道歉。
: 好,我们仿造这种递归定义,来定义偶数。
: 我们假设不知道什么叫偶数,我们对非负整数集合进行如下的定义来定义偶数。

avatar
x*p
51
我一直承认这个命题是对的。

【在 l*3 的大作中提到】
: 我来了~
: 我先这么问你吧, 一步一步来.
: 在主流数学公理,定义 (包括素数的定义),逻辑体系下, 你说说以下这个陈述对不对:
: "a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除"
: 注意, 我只要求你把这句话当做一个普通的命题来看, 并不是问你这句话能不能定义出
: 素数. 假设我先不关心这句话能否给出素数的定义 (素数本身是有主流定义的, 这一点
: 你承认吧?), 我只问你这个命题的正确性.
: 所以你只需回答 "正确" 或者 "错误".
: 谢谢!

avatar
C*r
52
哈哈。强大。拍个照。

【在 j****q 的大作中提到】
: 您的id更眼熟了~~以前搀和过zl帖子,不过参与者实在太无聊,就没follow up了,这
: 个帖子有意思多了。。。。
: 不过我真诚的劝您一句,别搀和这个了,zl那事您可能是对的,但这事。。您错了。。
: 。多多google有益身心健康

avatar
T*s
53
问你个问题,零的零次方是多少?还有零的factorial是多少?
出来争论,要先搞清楚什么是定义,什么是逻辑推理。

【在 x*****p 的大作中提到】
: 那1为什么不是素数?
avatar
m*x
54
我很早就看懂你的意思了,只是我不同意你这个观点罢了。而且我也不认为你举的所有
例子可以证明你这个观点。

【在 x*****p 的大作中提到】
: 试图用很多方法,总是让人不明白。我希望我下面的说法,能让大家明白问题所在。
: 我如果要用递归定义素数,为了不与素数的原始定义冲突,让大家对”素数“这个概念
: 产生歧义,我在下面的全程不提素数两字。
: 我们定义正整数集体的一个子集X,满足下面的条件
: (1) 1不属于X
: (2) x属于X,当且仅当x不能被任何X中小于x的数整除
: 通过这个递归定义,我们得到了集合,通过比较我们传统定义的素数集合,发现二者是
: 完全一样的。于是我们称由此递归定义出来的集合中的元素,为素数。
: 我一直坚持的就是,在完全不知道素数定义的前提下,递归定义中也不应该有”素数“
: 这个词。

avatar
x*p
55
如果这样的定义也可以成立,我们可以简单的如下定义素数
a是素数当且仅当a是素数集合的一个元素。
那你认为我上面的命题对不对?
avatar
l*3
56
好, 那么抛开 "这个陈述到底能不能作为定义" 这个问题不谈, 如果你认为这个命题是
对的, 那么我原帖 http://www.mitbbs.com/article_t1/WaterWorld/2025181_0_1.html 中的证明 (刨去其中用了 "素数的定义" 这种说法), 应该是对的?
-----
你可以放心回答, 我不会等你答完这个问题就跑的. 我只是想一步一步来, 这样比较清
楚.

【在 x*****p 的大作中提到】
: 我一直承认这个命题是对的。
avatar
m*x
57
这个是not well defined
再说一遍。你举一个例子说明这个“循环”定义不对,并不能说明所有“循环”定义都
不对。我说的对指: well-defined

【在 x*****p 的大作中提到】
: 如果这样的定义也可以成立,我们可以简单的如下定义素数
: a是素数当且仅当a是素数集合的一个元素。
: 那你认为我上面的命题对不对?

avatar
m*x
58
这个我证明,xiongyp很早就同意如果把“定义”改为“推论”,证明没有问题。现在
他纠结的只是“循环”定义能不能成为定义的问题。

【在 l*3 的大作中提到】
: 好, 那么抛开 "这个陈述到底能不能作为定义" 这个问题不谈, 如果你认为这个命题是
: 对的, 那么我原帖 http://www.mitbbs.com/article_t1/WaterWorld/2025181_0_1.html 中的证明 (刨去其中用了 "素数的定义" 这种说法), 应该是对的?
: -----
: 你可以放心回答, 我不会等你答完这个问题就跑的. 我只是想一步一步来, 这样比较清
: 楚.

avatar
x*p
59
这就要回到集合论,甚至是形而上学的东西了。
一个概念,我们有了一个清楚的原始定义,形成关于这个概念的集合。这个定义可以派
生出很多等价定义。我对等价定义的理解,就是用另外与这个概念无关的另一种描述,
也生成一个集合,而这个集与这个概念的集合完全相同。于是关于另一种描述,也成为
这个概念的一种等价描述。

【在 m**x 的大作中提到】
: 这个是not well defined
: 再说一遍。你举一个例子说明这个“循环”定义不对,并不能说明所有“循环”定义都
: 不对。我说的对指: well-defined

avatar
x*p
60
确实如此。我从没反对I63整体的逻辑证明,这与那些民科回贴不一样。我只是不认同
这个递归的定义罢了。

【在 m**x 的大作中提到】
: 这个我证明,xiongyp很早就同意如果把“定义”改为“推论”,证明没有问题。现在
: 他纠结的只是“循环”定义能不能成为定义的问题。

avatar
m*x
61
这个现在成为语文问题了。好吧,我说i63的定义是implicit definition,可不可以。
你理解的定义就是必须是explicit才是定义。我的理解,只要两个命题等价,他就是一
回事儿。等价即A=>B且B=>A

【在 x*****p 的大作中提到】
: 这就要回到集合论,甚至是形而上学的东西了。
: 一个概念,我们有了一个清楚的原始定义,形成关于这个概念的集合。这个定义可以派
: 生出很多等价定义。我对等价定义的理解,就是用另外与这个概念无关的另一种描述,
: 也生成一个集合,而这个集与这个概念的集合完全相同。于是关于另一种描述,也成为
: 这个概念的一种等价描述。

avatar
f*i
62
你这个是真命题,但不是定义(或者说是循环定义)
别人的是递归定义,注意区别

【在 x*****p 的大作中提到】
: 如果这样的定义也可以成立,我们可以简单的如下定义素数
: a是素数当且仅当a是素数集合的一个元素。
: 那你认为我上面的命题对不对?

avatar
w*n
63
你这个递归定义没有问题. 你这个递归定义和数学归纳法是一样的.
递归和循环是两码事情. 递归是有起点的, 循环是没有起点的

【在 x*****p 的大作中提到】
: 我们假设不知道什么叫素数,我们对正整数集合进行如下的定义来定义素数。(这是从
: 链接上取下来的,也是I63的定义)
: (1) 1不是素数 (base case)
: (2) a是素数当且仅当a不能被任何小于它的素数整除。
: 我曾经多次指出,这个定义在用素数定义素数,是不正确的。但看到很多的反驳如下。
: 1不是素数, 我们考察2,发现小于2的素数集合为空集,于是2为素数。以此再往下递归
: ,得出所有素数的定义。我想昨天深入讨论此内容的人,都不会反对我的总结吧。关于
: "小于2的素数集合为空集"推出"2为素数",因我的不慎,还做出过郑重道歉。
: 好,我们仿造这种递归定义,来定义偶数。
: 我们假设不知道什么叫偶数,我们对非负整数集合进行如下的定义来定义偶数。

avatar
x*p
64
原贴中的下面这句有歧义
[由素数的定义:
a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除]
我理解为素数的定义就是上面这个式子。这个不是素数的原始定义。如果说"由素数的
定义,有以下的结论",那这个证明没有任何的问题。

【在 m**x 的大作中提到】
: 这个我证明,xiongyp很早就同意如果把“定义”改为“推论”,证明没有问题。现在
: 他纠结的只是“循环”定义能不能成为定义的问题。

avatar
l*3
65
哦......
"从没反对" 这种话还是别说了.. 我那帖子里有你的发言记录的...
所以你现在的意思是, 我的证明没错, 只是我那个定义到底能不能 work out, 我没有
加以说明.
对不对?
另外, 麻烦你对56楼的问题做一个清楚明确的回答, 谢谢!

【在 x*****p 的大作中提到】
: 确实如此。我从没反对I63整体的逻辑证明,这与那些民科回贴不一样。我只是不认同
: 这个递归的定义罢了。

avatar
l*3
66
那我也尽量表述清楚一些吧:
你的意思是, 你之前说我的证明 "有误", 并不是证明本身有错误, 而是指其中 "由素
数的定义" 这个表述不够恰当, 没有说明其合理性, 对吧? 至于证明本身, 是正确的?

【在 x*****p 的大作中提到】
: 原贴中的下面这句有歧义
: [由素数的定义:
: a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除]
: 我理解为素数的定义就是上面这个式子。这个不是素数的原始定义。如果说"由素数的
: 定义,有以下的结论",那这个证明没有任何的问题。

avatar
m*x
67
<=> 的意思其实是说<=>右边的命题和素数原始定义等价。结论只是=> , 等价则是<=>

【在 x*****p 的大作中提到】
: 原贴中的下面这句有歧义
: [由素数的定义:
: a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除]
: 我理解为素数的定义就是上面这个式子。这个不是素数的原始定义。如果说"由素数的
: 定义,有以下的结论",那这个证明没有任何的问题。

avatar
m*x
68
我再打个比方来说明我的implicit definition.我现在定义x, x满足 x+2=4。 你认为
这是不是个定义?

【在 x*****p 的大作中提到】
: 原贴中的下面这句有歧义
: [由素数的定义:
: a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除]
: 我理解为素数的定义就是上面这个式子。这个不是素数的原始定义。如果说"由素数的
: 定义,有以下的结论",那这个证明没有任何的问题。

avatar
l*3
69
怎么楼主说着说着就不见了? 坑不挖了吗?
avatar
j*q
70
额~~拍照为啥。。。
难道又要扯我到lzsw那事上??。。。我惹不起还躲不起么。。。

【在 C**********r 的大作中提到】
: 哈哈。强大。拍个照。
avatar
m*x
71
你也有说着说着不见的时候啊。耐心吧。

【在 l*3 的大作中提到】
: 怎么楼主说着说着就不见了? 坑不挖了吗?
avatar
l*3
72
嗯, 谢谢!

【在 m**x 的大作中提到】
: 你也有说着说着不见的时候啊。耐心吧。
avatar
t*d
73
作为有数理逻辑训练的人,你的zlsw处女贴是真弱,
比海狸在反证法里的表现,弱多了去, hehe

【在 j****q 的大作中提到】
: 额~~拍照为啥。。。
: 难道又要扯我到lzsw那事上??。。。我惹不起还躲不起么。。。

avatar
j*q
74
是啊。。您有数理逻辑训练行了么,sw就是凶手行了么?
和你们这群人真是纠缠不清啊。。。
数学问题是一定有对错的,对就是对了 错就是错了。
尼玛真是躲都躲不掉啊。。。。
另外我原贴完全就是在讨论,然后看到底下有人骂街 那还有啥讨论的意义呢?既然没
有讨论,又如何体现逻辑呢?就算我说sw不是凶手(我原贴没说他不是),你能证明我
这个结论有逻辑上的错误?你学过逻辑么?你学过数学么?你上过大学么?你上过高中
么。。。
swzl案件起码目前无法有足够证据证明凶手是谁吧?这两者可以比较么?
要是硬比,海狸在这个素数问题上就是错了,而我在swzl上,起码有十万分之一的可能
性是对的。。。
你自己说你有逻辑么?
拉帮站队这种事真心没意思,别再这学术帖子里扯swzl好么

【在 t*******d 的大作中提到】
: 作为有数理逻辑训练的人,你的zlsw处女贴是真弱,
: 比海狸在反证法里的表现,弱多了去, hehe

avatar
C*r
75
结案结案。大妈我小时候是数学爱好者,后来发现自己太笨就不学了。你看我连超越都
不知道。

【在 j****q 的大作中提到】
: 是啊。。您有数理逻辑训练行了么,sw就是凶手行了么?
: 和你们这群人真是纠缠不清啊。。。
: 数学问题是一定有对错的,对就是对了 错就是错了。
: 尼玛真是躲都躲不掉啊。。。。
: 另外我原贴完全就是在讨论,然后看到底下有人骂街 那还有啥讨论的意义呢?既然没
: 有讨论,又如何体现逻辑呢?就算我说sw不是凶手(我原贴没说他不是),你能证明我
: 这个结论有逻辑上的错误?你学过逻辑么?你学过数学么?你上过大学么?你上过高中
: 么。。。
: swzl案件起码目前无法有足够证据证明凶手是谁吧?这两者可以比较么?
: 要是硬比,海狸在这个素数问题上就是错了,而我在swzl上,起码有十万分之一的可能

avatar
i*q
76
人要多空虚,才能在一道小学竞赛题上争论好几天啊……

【在 x*****p 的大作中提到】
: 我们假设不知道什么叫素数,我们对正整数集合进行如下的定义来定义素数。(这是从
: 链接上取下来的,也是I63的定义)
: (1) 1不是素数 (base case)
: (2) a是素数当且仅当a不能被任何小于它的素数整除。
: 我曾经多次指出,这个定义在用素数定义素数,是不正确的。但看到很多的反驳如下。
: 1不是素数, 我们考察2,发现小于2的素数集合为空集,于是2为素数。以此再往下递归
: ,得出所有素数的定义。我想昨天深入讨论此内容的人,都不会反对我的总结吧。关于
: "小于2的素数集合为空集"推出"2为素数",因我的不慎,还做出过郑重道歉。
: 好,我们仿造这种递归定义,来定义偶数。
: 我们假设不知道什么叫偶数,我们对非负整数集合进行如下的定义来定义偶数。

avatar
d*x
77
re

【在 i***q 的大作中提到】
: 人要多空虚,才能在一道小学竞赛题上争论好几天啊……
avatar
j*q
78
我就是属于空虚类型的。。。惭愧。。。
不过我觉得163。。。是真心要普及知识的那种或者是偏执狂。。。。。。

【在 i***q 的大作中提到】
: 人要多空虚,才能在一道小学竞赛题上争论好几天啊……
avatar
t*d
79
你看,我调侃一句你倒跳脚了,你那处女贴我都没有参和,那种贴我一般
觉得有50%可能是智商逻辑问题,现在看来不是,鄙视你

【在 j****q 的大作中提到】
: 是啊。。您有数理逻辑训练行了么,sw就是凶手行了么?
: 和你们这群人真是纠缠不清啊。。。
: 数学问题是一定有对错的,对就是对了 错就是错了。
: 尼玛真是躲都躲不掉啊。。。。
: 另外我原贴完全就是在讨论,然后看到底下有人骂街 那还有啥讨论的意义呢?既然没
: 有讨论,又如何体现逻辑呢?就算我说sw不是凶手(我原贴没说他不是),你能证明我
: 这个结论有逻辑上的错误?你学过逻辑么?你学过数学么?你上过大学么?你上过高中
: 么。。。
: swzl案件起码目前无法有足够证据证明凶手是谁吧?这两者可以比较么?
: 要是硬比,海狸在这个素数问题上就是错了,而我在swzl上,起码有十万分之一的可能

avatar
l*3
80
事实貌似是, 楼主在这一段时间, 回复了其他好几个帖子. 就是不回复他自己的这个帖
子.
他似乎不愿意面对我的问题.
这种每次到最后就跑掉的行为, 我也没有办法.

【在 m**x 的大作中提到】
: 你也有说着说着不见的时候啊。耐心吧。
avatar
c*p
81
这样递归地定义素数如何:
1. 1不是素数
2. 2是素数
3. 对于大于2的整数a,a是素数当且仅当a不能被任何小于它的素数整除。

【在 x*****p 的大作中提到】
: 我们假设不知道什么叫素数,我们对正整数集合进行如下的定义来定义素数。(这是从
: 链接上取下来的,也是I63的定义)
: (1) 1不是素数 (base case)
: (2) a是素数当且仅当a不能被任何小于它的素数整除。
: 我曾经多次指出,这个定义在用素数定义素数,是不正确的。但看到很多的反驳如下。
: 1不是素数, 我们考察2,发现小于2的素数集合为空集,于是2为素数。以此再往下递归
: ,得出所有素数的定义。我想昨天深入讨论此内容的人,都不会反对我的总结吧。关于
: "小于2的素数集合为空集"推出"2为素数",因我的不慎,还做出过郑重道歉。
: 好,我们仿造这种递归定义,来定义偶数。
: 我们假设不知道什么叫偶数,我们对非负整数集合进行如下的定义来定义偶数。

avatar
l*3
82
与传统的偶数定义不一样, 那是因为你没有证明他和传统定义的偶数一样.
我已经证明了如下命题:
"a是素数 <=> a是小于1的自然数, 且a不能被任何小于a的素数整除"
这个命题不管能不能作为素数的定义, 都是正确的.
至于他能不能作为定义, 那是和定义的 "可判定性" 与 "良定义性" 有关的, 和 "通常
意义下的素数" 无关.

【在 x*****p 的大作中提到】
: 我们假设不知道什么叫素数,我们对正整数集合进行如下的定义来定义素数。(这是从
: 链接上取下来的,也是I63的定义)
: (1) 1不是素数 (base case)
: (2) a是素数当且仅当a不能被任何小于它的素数整除。
: 我曾经多次指出,这个定义在用素数定义素数,是不正确的。但看到很多的反驳如下。
: 1不是素数, 我们考察2,发现小于2的素数集合为空集,于是2为素数。以此再往下递归
: ,得出所有素数的定义。我想昨天深入讨论此内容的人,都不会反对我的总结吧。关于
: "小于2的素数集合为空集"推出"2为素数",因我的不慎,还做出过郑重道歉。
: 好,我们仿造这种递归定义,来定义偶数。
: 我们假设不知道什么叫偶数,我们对非负整数集合进行如下的定义来定义偶数。

avatar
l*3
83
你之前明明说的是 "这个定义不能推出2为素数".
现在又改口了, 真无耻.

【在 x*****p 的大作中提到】
: 我们假设不知道什么叫素数,我们对正整数集合进行如下的定义来定义素数。(这是从
: 链接上取下来的,也是I63的定义)
: (1) 1不是素数 (base case)
: (2) a是素数当且仅当a不能被任何小于它的素数整除。
: 我曾经多次指出,这个定义在用素数定义素数,是不正确的。但看到很多的反驳如下。
: 1不是素数, 我们考察2,发现小于2的素数集合为空集,于是2为素数。以此再往下递归
: ,得出所有素数的定义。我想昨天深入讨论此内容的人,都不会反对我的总结吧。关于
: "小于2的素数集合为空集"推出"2为素数",因我的不慎,还做出过郑重道歉。
: 好,我们仿造这种递归定义,来定义偶数。
: 我们假设不知道什么叫偶数,我们对非负整数集合进行如下的定义来定义偶数。

avatar
l*3
84
我这么问你, 你不要逃避话题:
我们定义一种数, 叫做 "高智商数"
定义如下:
a被称为高智商数, 当且仅当 "a是大于1的自然数, 并且a不能被任何小于a的高智商数
整除"
请问, 这个定义是否具有 "可判定性" 和 "良定义性" ?
我根据这个定义, 能不能判断出一个对象a是不是 "高智商数" ?

【在 x*****p 的大作中提到】
: 我们假设不知道什么叫素数,我们对正整数集合进行如下的定义来定义素数。(这是从
: 链接上取下来的,也是I63的定义)
: (1) 1不是素数 (base case)
: (2) a是素数当且仅当a不能被任何小于它的素数整除。
: 我曾经多次指出,这个定义在用素数定义素数,是不正确的。但看到很多的反驳如下。
: 1不是素数, 我们考察2,发现小于2的素数集合为空集,于是2为素数。以此再往下递归
: ,得出所有素数的定义。我想昨天深入讨论此内容的人,都不会反对我的总结吧。关于
: "小于2的素数集合为空集"推出"2为素数",因我的不慎,还做出过郑重道歉。
: 好,我们仿造这种递归定义,来定义偶数。
: 我们假设不知道什么叫偶数,我们对非负整数集合进行如下的定义来定义偶数。

avatar
t*r
85
不用争论啦,看我在另一楼里面用 yacc/c伪码 写的正则语法(formal language)
的素数递归定义,这下就可以对罗素笑而不语啦。。。
link 在下面:
http://www.mitbbs.com/article/WaterWorld/2034385_0.html
我把全文 copy & paste 过来:
=============================================
// yacc 段落 (大致):
list_of_primes : list_of_primes one_natural_number
{ if (! if_and_only_if_divisor($2, $1))
弹出语法错误 ; }
| "2"
{ printf("Reduce 成功!"); }
| "1"
{ 弹出语法错误 ; }
;
// 上面这个 list_of_primes 实际意思是从 2 开始的 N 个连续质数序列,
// 按升序排列,不过正则语法里 token 的名字其实无所谓。
// C 段落(大致):
bool if_and_only_if_divisor(this_number, list_of_numbers)
{
// 判断 能整除
if (this_number 能被某一个数整除_in list_of_numbers)
return false;
// 判断 最大
if (this_number <=_任何一个数_in list_of_numbers)
return false;
// 判断 仅能 (only if)
// 实际上是 check 从素数序列里最大的到这个数
// 之间有没有其他不能被整除的数
// 素数序列内依赖 yacc 本身 recurs down 保证
for (a_number = max(list_of_numbers) + 1;
a_number < this_number;
a_number++) {
if (a_number 不能被所有的数整除_in list_of_numbers)
return false;
}
}
return true;
}
============================================================
比如一个输入 (2, 3, 5)
input:(2, 3, 5)
reduce: 5 if_an_only_if_divisor (2, 3)
reduce: (2, 3)
reduce: 3 if_an_only_if_divisor (2)
reduce: (2)
SUCCESS
=============================================
如果给 input (2, 4, 5)
input: (2, 4, 5)
reduce: 5 if_an_only_if_divisor (2, 4)
reduce: (2, 4)
reduce: 4 if_an_only_if_divisor (2) !!! FAIL
FAIL
==============================================
input: (3, 4)
reduce: 4 if_an_only_if_dvisor (3)
reduce: (3)
UNABLE TO SHIFT: FAIL!
(没有 reduce 到 primitive token,这个例子里是 2)
==============================================

【在 l*3 的大作中提到】
: 我这么问你, 你不要逃避话题:
: 我们定义一种数, 叫做 "高智商数"
: 定义如下:
: a被称为高智商数, 当且仅当 "a是大于1的自然数, 并且a不能被任何小于a的高智商数
: 整除"
: 请问, 这个定义是否具有 "可判定性" 和 "良定义性" ?
: 我根据这个定义, 能不能判断出一个对象a是不是 "高智商数" ?

avatar
l*3
86
楼主就这么销声匿迹了?
敢回应一下不?
avatar
m*x
87
PM他试试。

【在 l*3 的大作中提到】
: 楼主就这么销声匿迹了?
: 敢回应一下不?

avatar
t*r
88
在码工的 formal system 里面,自然数/偶数/素数 都是可以递归定义
并且递归生成的。
对于楼主的问题的回答是:0 要被定义为偶数。
楼主的例子,为啥要对 0 定义,非严格的说法,递归定义需要定义使得
递归生成无二义的 “初始条件”。 “初始条件” 就好比是 “循环入口断言”。
相对严格的说法,递归定义必须能让 token induce/reduce 成
已经定义的无二义的 primitive token。primitive token
不能引用自己而定义(否则是循环定义)。
那楼主说我把 0 定义名字叫奇数行不行。实际上在 formal system
里,定义为奇数完全可以,只不过你所谓的“奇数”就是大伙儿的偶数,
除了名字不一样,其他性质全一样。甚至你定义为“牛鼻”数还是“傻鼻”
数都没有关系,这个也是 formal system 的特性,取名跟意义无关。
当然,如果你在欧几里德这种不是 formal system 的体系里这么
干,估计悖论是免不了的。

【在 x*****p 的大作中提到】
: 我们假设不知道什么叫素数,我们对正整数集合进行如下的定义来定义素数。(这是从
: 链接上取下来的,也是I63的定义)
: (1) 1不是素数 (base case)
: (2) a是素数当且仅当a不能被任何小于它的素数整除。
: 我曾经多次指出,这个定义在用素数定义素数,是不正确的。但看到很多的反驳如下。
: 1不是素数, 我们考察2,发现小于2的素数集合为空集,于是2为素数。以此再往下递归
: ,得出所有素数的定义。我想昨天深入讨论此内容的人,都不会反对我的总结吧。关于
: "小于2的素数集合为空集"推出"2为素数",因我的不慎,还做出过郑重道歉。
: 好,我们仿造这种递归定义,来定义偶数。
: 我们假设不知道什么叫偶数,我们对非负整数集合进行如下的定义来定义偶数。

avatar
l*8
89
您老人家错太多了啊
正则语法是regular expression吧?yacc对应的是上下文无关文法(的一个子集)。程
序设计语言对应的是上下文相关文法。无论什么文法,定义出来的程序只能计算可计算
函数。可计算函数时数学函数的一个极小的子集。
不要拿计算机的东西来随便往数学上套,这两个差别太大了。

【在 t*******r 的大作中提到】
: 不用争论啦,看我在另一楼里面用 yacc/c伪码 写的正则语法(formal language)
: 的素数递归定义,这下就可以对罗素笑而不语啦。。。
: link 在下面:
: http://www.mitbbs.com/article/WaterWorld/2034385_0.html
: 我把全文 copy & paste 过来:
: =============================================
: // yacc 段落 (大致):
: list_of_primes : list_of_primes one_natural_number
: { if (! if_and_only_if_divisor($2, $1))
: 弹出语法错误 ; }

avatar
l*3
90
呵呵, 他自己开了个新坑, 把素数分成两类, 并声称 "可以用类似的反证法证明" 来混
淆视听.
而且我目测你掉坑里了, 哈哈.
他这类没种的, 辩不过以后除了逃避, 其他也干不出什么有档次的事情了.

【在 m**x 的大作中提到】
: PM他试试。
avatar
t*r
91
你说的没错,俺数学的确不行,所以做码工正好。。。 :-)
至于计算机中文词汇,我承认是不行。不过这不怪我,是 I63 坚持要我敲
中文词汇的。再说了,灌水主要是开心,一个一个查翻译太费事了。不过
以后俺术语少用中文,省得落下蛊惑大众的骂名。。。
另外 YACC 实际上是根据类似 BNF 的定义格式自动生成 parser 的程序,
生成的是 LALR parser,如果我没有记错的话。。。

【在 l*****8 的大作中提到】
: 您老人家错太多了啊
: 正则语法是regular expression吧?yacc对应的是上下文无关文法(的一个子集)。程
: 序设计语言对应的是上下文相关文法。无论什么文法,定义出来的程序只能计算可计算
: 函数。可计算函数时数学函数的一个极小的子集。
: 不要拿计算机的东西来随便往数学上套,这两个差别太大了。

avatar
l*8
92
呵呵,BNF就是Context-free grammar的一种。这种BNF定义出来语言就是context-free
language.
LALR parser是用context free grammar去match一个字符串的一种办法。并不是所有的
CFG语法都能用LALR parser的。只有DCFL (deterministic context-free language)才
能用LALR parser.用LALR的原因是它用的时间是线性的。如果不加限制的CFG,分析的时
间可能会是指数时间。在数学上总是能够parse出来的,但不能用在实际中。这样的话
编译一个大点的程序可能需要天文时间。
总之LALR parser能处理的语言只是形式语言(formal language)里一个极小极小的子集。

【在 t*******r 的大作中提到】
: 你说的没错,俺数学的确不行,所以做码工正好。。。 :-)
: 至于计算机中文词汇,我承认是不行。不过这不怪我,是 I63 坚持要我敲
: 中文词汇的。再说了,灌水主要是开心,一个一个查翻译太费事了。不过
: 以后俺术语少用中文,省得落下蛊惑大众的骂名。。。
: 另外 YACC 实际上是根据类似 BNF 的定义格式自动生成 parser 的程序,
: 生成的是 LALR parser,如果我没有记错的话。。。

avatar
t*r
93
俺是 Algorithm-Depot 门口的老莫,主要给老板干体力活。。。
十多年前曾经用 YACC 写过一个简单的 parser,不过那个语法很简单。
后来没再写过 parser,也忘得差不多了。
复杂的文法可以写成 tree,其实不少 tree 算法也可以看成是某种
文法,不过大伙儿一般不从这个角度看。。。

free
集。

【在 l*****8 的大作中提到】
: 呵呵,BNF就是Context-free grammar的一种。这种BNF定义出来语言就是context-free
: language.
: LALR parser是用context free grammar去match一个字符串的一种办法。并不是所有的
: CFG语法都能用LALR parser的。只有DCFL (deterministic context-free language)才
: 能用LALR parser.用LALR的原因是它用的时间是线性的。如果不加限制的CFG,分析的时
: 间可能会是指数时间。在数学上总是能够parse出来的,但不能用在实际中。这样的话
: 编译一个大点的程序可能需要天文时间。
: 总之LALR parser能处理的语言只是形式语言(formal language)里一个极小极小的子集。

avatar
l*8
94
呵呵,你的基础不错的。一般人这些理论的东西早就忘光了吧?

【在 t*******r 的大作中提到】
: 俺是 Algorithm-Depot 门口的老莫,主要给老板干体力活。。。
: 十多年前曾经用 YACC 写过一个简单的 parser,不过那个语法很简单。
: 后来没再写过 parser,也忘得差不多了。
: 复杂的文法可以写成 tree,其实不少 tree 算法也可以看成是某种
: 文法,不过大伙儿一般不从这个角度看。。。
:
: free
: 集。

avatar
t*r
95
其实老实说还是自己有点兴趣,所以有空时也看点玩玩。
如果只是为了应付上班给老板 码code 体力活,估计肯定忘光了。。。

【在 l*****8 的大作中提到】
: 呵呵,你的基础不错的。一般人这些理论的东西早就忘光了吧?
avatar
l*3
96
我这么问你, 你不要逃避话题:
我们定义一种数, 叫做 "高智商数"
定义如下:
a被称为高智商数, 当且仅当 "a是大于1的自然数, 并且a不能被任何小于a的高智商数
整除"
请问, 这个定义是否具有 "可判定性" 和 "良定义性" ?
我根据这个定义, 能不能判断出一个对象a是不是 "高智商数" ?

【在 x*****p 的大作中提到】
: 我们假设不知道什么叫素数,我们对正整数集合进行如下的定义来定义素数。(这是从
: 链接上取下来的,也是I63的定义)
: (1) 1不是素数 (base case)
: (2) a是素数当且仅当a不能被任何小于它的素数整除。
: 我曾经多次指出,这个定义在用素数定义素数,是不正确的。但看到很多的反驳如下。
: 1不是素数, 我们考察2,发现小于2的素数集合为空集,于是2为素数。以此再往下递归
: ,得出所有素数的定义。我想昨天深入讨论此内容的人,都不会反对我的总结吧。关于
: "小于2的素数集合为空集"推出"2为素数",因我的不慎,还做出过郑重道歉。
: 好,我们仿造这种递归定义,来定义偶数。
: 我们假设不知道什么叫偶数,我们对非负整数集合进行如下的定义来定义偶数。

avatar
U*5
97
Regular expression 只是 formal language 的具体定义形式之一。
Formal language可以由regular expression生成,同样也能由FSM或者图灵机生成啊。

【在 l*****8 的大作中提到】
: 您老人家错太多了啊
: 正则语法是regular expression吧?yacc对应的是上下文无关文法(的一个子集)。程
: 序设计语言对应的是上下文相关文法。无论什么文法,定义出来的程序只能计算可计算
: 函数。可计算函数时数学函数的一个极小的子集。
: 不要拿计算机的东西来随便往数学上套,这两个差别太大了。

avatar
C*r
98
就是谷歌的大牛们估计曾几何时也只是Algorithm-Depot门口的老莫的干活。。。

【在 t*******r 的大作中提到】
: 俺是 Algorithm-Depot 门口的老莫,主要给老板干体力活。。。
: 十多年前曾经用 YACC 写过一个简单的 parser,不过那个语法很简单。
: 后来没再写过 parser,也忘得差不多了。
: 复杂的文法可以写成 tree,其实不少 tree 算法也可以看成是某种
: 文法,不过大伙儿一般不从这个角度看。。。
:
: free
: 集。

avatar
l*8
99
从定义上说,Formal Language就是字符串的集合。程序设计语言就是一种formal
language.比如Java语言就包含了所有可以合法编译运行的Java程序(一个程序可以看
成一个字符串)。
regular expression不是formal language,是定义formal language的一种办法。它生
成的语言叫做正规(还是叫正则?英文叫regular language)语言。Regular
languages还可以用DFA(Deterministic finite automata), 或者NFA(non-
deterministic finite automata)生成。还有一种叫做linear grammar也能生成这类语
言。
另一类语言叫做context-free language(CFL). 这类语言可以由context-free grammar
生成,也能由non-deterministic pushdown automata生成。CFL有一个子类叫做DCFL(
deterministic context-free language),这类语言可以由deterministic pushdown
automata生成。前面一直提到的LALR, YACC就是分析DCFL的。
再往上差不多最大的就是可计算语言(decidable language)。这类语言就是用图灵机
生成的。等价的还可以用lambda演算(Lisp语言和很多函数是语言都是从lambda演算演
变而来)。当然还有不可计算语言(undecidable language)。
这几类语言,Regular language, DCFL, CFL, decidable language一个比一个大。所
以regular expression不能表示所有的context-free languages. Context-free
grammar不能生成所有的decidable language.
对应于程序设计语言,第一轮的词法分析是基于regular language. 第二轮的语法分析
是基于context-free language.再下一轮的语义分析这是基于decidable language了。
所以都是formal languages,但他们属于不同分类。

【在 U***5 的大作中提到】
: Regular expression 只是 formal language 的具体定义形式之一。
: Formal language可以由regular expression生成,同样也能由FSM或者图灵机生成啊。

avatar
U*5
100
卧槽,回这么多,这么专业。
Automata Theory/linguistic老早以前学过,99%都还给老师了。工作时候偶尔会用到
剩下的1%,老美同事还都一脸敬仰,哈哈。

grammar

【在 l*****8 的大作中提到】
: 从定义上说,Formal Language就是字符串的集合。程序设计语言就是一种formal
: language.比如Java语言就包含了所有可以合法编译运行的Java程序(一个程序可以看
: 成一个字符串)。
: regular expression不是formal language,是定义formal language的一种办法。它生
: 成的语言叫做正规(还是叫正则?英文叫regular language)语言。Regular
: languages还可以用DFA(Deterministic finite automata), 或者NFA(non-
: deterministic finite automata)生成。还有一种叫做linear grammar也能生成这类语
: 言。
: 另一类语言叫做context-free language(CFL). 这类语言可以由context-free grammar
: 生成,也能由non-deterministic pushdown automata生成。CFL有一个子类叫做DCFL(

avatar
l*3
101
to楼主:
我们定义一种数, 叫做 "高智商数"
定义如下:
a被称为高智商数, 当且仅当 "a是大于1的自然数, 并且a不能被任何小于a的高智商数
整除"
请问, 这个定义是否具有 "可判定性" 和 "良定义性" ?
我根据这个定义, 能不能判断出一个对象a是不是 "高智商数" ?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。