数学语句和编程语句之间有区别吗?[关闭]

Is there a difference between mathematical statements and programming statements? [closed]

提问人:Anonymous 提问时间:12/26/2014 最后编辑:Anonymous 更新时间:12/29/2014 访问量:95

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

8年前关闭。

这对你们来说可能是一个非常有趣的问题,但我很想知道答案:

i=10
i=i+1
i=i+1
i=i+1
i=?

就纯数学而言,最终价值是什么,就任何编程语言而言,最终价值是多少。我想我只是在以编程的方式思考。 我知道在编程语言中会是值,但我对数学值感到困惑。ii13

所以专家请告诉我纯数学陈述和编程陈述之间是否有任何区别。最后一行的数学值是什么?i

语言 不可知 编程语言 符号数学

评论

0赞 n. m. could be an AI 12/26/2014
数学是推理的方式,而不是任何特定的符号或领域。如果你以正确的方式去做,代码就是数学。你不能对比编程和数学,只能对比编程和一些特定的、定义明确的数学分支。你没有说出一个名字,所以你的问题没有意义。
0赞 svick 12/27/2014
并非所有编程语言都用于赋值。例如,Pascal 用于比较和赋值。==:=

答:

1赞 Cimbali 12/26/2014 #1

改变的通常是符号而不是含义。

当你写 时,你的意思是变量的赋值。如果我读到写在一张纸上的符号,我会倾向于把它当作(用典型的类C语言)。作业会用一个向左的箭头来写,就像在某些数学领域一样,而这个概念在其他一些领域根本没有意义。===i <- i + 1

把你的代码行当作一些随机的数学语句来阅读,会让我明白这样一个事实,即你多次写同一个方程,并且我们运算模 1(因为我读过),而且,所有这些符号都具有相同的值 0 模 1。i == i+1i = ? = 10 = 0

相反,如果我用“典型的数学语言”来表达你写的东西——如果我把它理解为代码——你会有这样的结果:

求解 i,其中 i=1+ ( 1+ ( 1+ ( 10 ) ) ) )

这有点微不足道。我这样写的原因是,在同一问题中对不同的值使用相同的变量并不常见。我也可以使用不同的名字:

求解 i、其中 、 和i=1+jj=1+kk=1+mm=10

评论

0赞 svick 12/27/2014
“情感”?那是什么意思?你是说“转让”吗?
0赞 Cimbali 12/27/2014
发现得很好,@svick。
2赞 David Hammen 12/26/2014 #2

i=10
i=i+1
i=i+1
i=i+1

在数学中,不是 的值赋值。相反,它表达了一种身份。这个表达式在数学上没有意义。一个例外是布尔代数,其中 0+0=0 和 0+1=1+0=1+1=1。但是,初始身份没有任何意义。A=BBAi=i+1i=10

在Haskell等试图最接近数学的语言中,这种表达是非法的。对象在 Haskell 和其他纯函数式语言中通常是不可变的。i=i+1