Algorithm 你会怎么写∀;y&x2208;R+∃;z∈;R、 伪代码中的e^z=y?
我正在读关于校对的书,目前正在读埃里克·莱曼和汤姆·莱顿的《计算机科学数学》,他们在一个示例命题中说明,“当z在实数范围内时,e^z至少一次呈现每一个正的实数值”。我很难完全理解这个命题 作为一名程序员,我正在尝试处理这一问题,并思考如果我想知道这是不是真的,在伪代码中会是什么样子Algorithm 你会怎么写∀;y&x2208;R+∃;z∈;R、 伪代码中的e^z=y?,algorithm,math,computer-science,proof,Algorithm,Math,Computer Science,Proof,我正在读关于校对的书,目前正在读埃里克·莱曼和汤姆·莱顿的《计算机科学数学》,他们在一个示例命题中说明,“当z在实数范围内时,e^z至少一次呈现每一个正的实数值”。我很难完全理解这个命题 作为一名程序员,我正在尝试处理这一问题,并思考如果我想知道这是不是真的,在伪代码中会是什么样子 pr = [ all real positive numbers ] r = [ all real numbers ] for y in pr: for z in r: e = pow(
pr = [ all real positive numbers ]
r = [ all real numbers ]
for y in pr:
for z in r:
e = pow(y, z)
if e != y:
goto outer
print "this is true";
outer
这就是他们的建议吗?∀ Y∈ R+,∃ Z∈ R、 e^z=y 就是说,对于正实数集合中的所有
y
,实数集合中存在z
,因此exp(z)=y
你不能真正创建一个程序来验证这是真的。最基本的原因是,您将遇到以下问题之一
z
,因此exp(z)=y
,因为这样的z
在浮点数集合中并不完全存在,无法给出exp(z)=y
y
都有z
,这也不能证明R+中的所有y和R中的所有z都是exp(z)=y
R = [SET OF ALL REALS]
R+ = FILTER (> 0) R
(MAP (exp) R) == R+
N.B.
exp
的意思是e^N
其中e^x=SUM[(x^k)/(k!)| k如果你想象可以枚举所有的正实数,而且可以在有限的时间内这样做,那么你思想实验的伪代码可能看起来更像这样:
pr = [ all real positive numbers ]
r = [ all real numbers ]
for y in pr:
for z in r:
e = exp(z)
if e == y:
goto outer
print "false"
stop
outer:
print "true"
与伪代码的主要区别在于:
- (技术)将
pow(y,z)
更改为exp(z)
。这是z
上的指数函数,或等效地,将数字e提升到第z次方
- 只有当外部循环运行到完成时,该命题才被发现为真(并且算法打印该结果)
- 如果在外循环的任何一次迭代中,内循环确实运行到完成(表明该迭代的y不是任何实数的指数),则该命题被证明是错误的。在这种情况下,算法打印该结果并停止。整个命题失败只需要一个这样的实数y
当然,描述这个命题的一种完全不同的数学方法是,它说自然对数是定义的,并且对所有正实数变元求值为实数。这是因为自然对数是指数的倒数,所以如果你取e^z=y
两边的对数,你会得到z=log(y)
这个命题被一个程序证明了,该程序将找到z∈ R给出了任何y∈ R+,因此:
z = log(y);
@CarlosGranados你的思路是对的。我刚才的编辑可能对你也有一些用处(如果你做函数编程的话)。实数是无限的这一事实本身并不是问题。如果命题是真的,并且实数是可数的(确切地说是递归枚举的),这个想法会起作用:对于每一个y
,这样一个z
最终会被找到。事实上,实数是不可数无限的,因此不可枚举,这是实际的障碍。对,这是计算机的实际性质,因为它是一个有限的设备。@EliSadoff Brute强制一个可数集,前提是我们搜索的元素是r属于集合,最终停止(理论上),-这在可计算性理论中很重要。当然,由于物理限制,这在实践中是不可行的。我只想指出这个精确的区别。@lisyarus“最终停止”-这不是真的;真正的是,对于每个元素,它都会在有限的时间后被处理。但总体而言,这实际上是一个奇妙的问题。很高兴看到更多关于stackoverflow的算法和数学内容。“pr=[所有实数]r=[所有实数]”这些已经是一个问题了,因为它们不仅无限多,而且大多数都是不可计算的。@G.Bach我在下面已经提到了这一点。问题不是要创建一个实际的程序,而是要看看它在伪代码算法中会是什么样子。似乎你在以一种有趣的方式使用e
。在数学中,e
是一个常量-它不能赋值。你可能想要类似于x=pow(e,z)
或x=exp(z)
@anatolyg的东西。这是一个很好的上下文,我有一段时间对e是什么感到困惑。