【发布时间】:2018-09-21 12:37:12
【问题描述】:
C 和 C++ 中的数字 pi 存在一个相当愚蠢的问题。据我所知,math.h 中定义的M_PI 不是任何标准所要求的。
新的 C++ 标准在标准库中引入了许多复杂的数学 - 双曲函数、std::hermite 和 std::cyl_bessel_i、不同的随机数生成器等等。
是否有任何“新”标准为 pi 引入了常数?如果不是 - 为什么?没有它,所有这些复杂的数学如何运作?
我知道关于 C++ 中的 pi 的类似问题(它们已经有好几年了,而且标准老了);我想知道问题的当前状态。
我也对为什么哦为什么C++ 仍然没有 pi 常数但有很多更复杂的数学很感兴趣。
我知道我可以将 pi 自己定义为 4*atan(1) 或 acos(-1) 或 double pi = 3.14;。当然。但是我为什么还要这样做呢?没有 pi,标准数学函数如何工作?
【问题讨论】:
-
您注意到存在诸如Best platform independent pi constant? 之类的旧问题。如果您担心它们已过时,您总是可以悬赏其中一个要求基于 C++17 等的答案......然后所有答案都将在一个地方。为什么仍然是一个很好的问题,但也许这应该关注为什么并且要求更新应该是对现有问题的奖励。
-
我认为可能值得添加新答案,因为据我所知,C++20 添加了一个 pi 常量
-
@GuillaumeRacicot 我更新了这个问题。不确定我们是否应该解决 C++20,因为它还没有正式发布。
-
@GuillaumeRacicot:添加一个有点晚了……
-
我想指出 pi 等于 arccos(-1),而不是 arccos(1),但更改的字符太少,我无法编辑问题。
标签: c++ c++11 c++14 language-lawyer c++17