如何在c++中表示无理数
How to represent irrational numbers in c++
我想用C++中的一个类来表示所有无理数。
我该怎么做?假设我的数据成员和函数是什么?
提前感谢。。。
我认为,实现这种性质的东西的唯一方法是使用标识符,而不是实际的数学或数字表示。即使在纯数学中,由于给定的公设,无理数也被标记为无理数。即使是人类也无法用数字来真正表示无理数。所以我唯一能建议的是,有一个已知无理数的标识符,比如这样的东西:
enum Irrational {
PI = 0,
E,
SQRT2,
...
};
然后你可能想把它们与这样的地图联系起来:
std::map<Irrational, double> myIrrationals;
myIrrations.insert( std::make_pair<Irrational, double>( PI, 3.141592654 ) );
如果在这张地图上找到无理数,那么你对无理数的检查将为真,否则为假。
即使在纯数学中,也不能表示无理数,除非是象征性的(比如Pi,sqrt(2)-你可以说"Pi",但不能在纸上写下它的确切值)。同样的道理也适用于计算机表示——如果你想精确地表示它们,你就不能将它们表示为"实数",只能象征性地表示(在计算机中,即使是有理数也很难精确地表示)。
因此,为了回答您的问题,如上所述,您的数据成员可以是字符串(表示为字符串的符号或整个表达式,如"Pi"或"sqrt(2)")和/或与表达式树组合(用于存储表示无理数的表达式的运算符和操作数,如运算符=sqrt、操作数=2等)。
相关文章:
- 表示"accepting anything for this template argument" C++概念的通配符
- 如何将ampl中的集合表示为c++中的向量
- std::is_base_of表示ctor编译错误
- 输入中的字符串数未知(以字母表示)
- 我可以信任表示整数的浮点或双精度来保持精度吗
- c++模板来表示多项式
- 询问在设计我的手臂模拟器功能表示格式1
- CMakeLists.txt中的命名空间表示法
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 如何计算Big-O表示法中的平均渐近运行时间
- 我应该如何表示我拥有的连续元素序列?
- 在C++中,使用带有 std::optional 参数的函数<T>来表示可选参数是否有意义?
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 表示类模板C++空类型
- 具有所表示类的相同构造函数签名的代理类模板
- 嵌套在循环中的两个循环的 big-O 表示法
- 具有引用成员的结构是否具有唯一的对象表示形式
- 使用 int 表示浮点除法 C++
- Geeksforgeeks C 程序故障排除:IEE 754 表示法为十进制
- 如何在c++中表示无理数