问题标签 [rational-number]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
math - 处理具有非整数指数的负底的幂函数
Math.pow()
, pow()
, 不管叫什么,很多语言(和计算器)都有一些内置函数来计算浮点数(或双精度数)的 x=a^b。有 a 为负数且 b 不是整数的特殊情况。有些会返回NaN
,有些会给出复杂的结果(咳咳 Python)。但有些实际上能够给出真正的结果,所以我想知道的是如何。为了解释我的困惑:
假设 b 是有理数:b=c/d。现在我们看一下 c 和 d 的奇偶校验:
d 是偶数:没有实数 x -> NaN 或错误
d 是奇数,c 是偶数:正 x
d 是奇数,c 是奇数:负 x
浮点数以特定格式存储,这意味着如果按字面解释,它始终是偶数 d(实际上是 2 的幂)。没有办法知道 c 和 d 的真实奇偶性,因为该信息在计算中丢失了。它只需要猜测。
所以我猜测它在做什么——它试图找到一个接近 b 的理性 c/d,奇数 d 并且 c 和 d 都小于某个阈值 t。较小的 t 意味着它可以更确定它是正确的,但它会在更少的数字上起作用。如果成功,它使用 c 的奇偶校验。否则它假装 d 是偶数。毕竟,浮点数可以是任何东西,数学库不想通过假设它可能不是合理的而给出可能错误的结果。
这只是我的猜测。如果有人真正看到了这些幂函数之一的代码(或规范,那也很好)并且可以提供洞察力,那就太好了。
c++ - 有理赋值运算符
所以在这个项目中,我必须创建一个合理化程序,帮助将数字简化为简化格式。我最挣扎的程序部分是具有长参数的运算符。我正在尝试写出适当的条件,以便 LongRational 将正确存储到 this->_num , this->_den 但逻辑我写的好像不太对。我的函数参数本身是否有问题,或者无论如何要纠正这个问题。
//注意:他希望有一组两个赋值运算符,它们带有参数,将 Rational 对象作为参数,另一个带有 long。
java - 关于java编程中的有理数,计算(1/2+3/4+...+99/100)^2
这段代码的目的是计算 (1/2+3/4+...+99/100)^2。但是我的循环无法正确执行。r1 的结果是 3/4 而不是 99/100,我的代码有什么问题?我认为我的循环可以运行,因为我可以正确地得到它。那么如何更正我的代码并使其能够计算 (1/2+3/4+...+99/100)^2 ?谢谢你的回答。
这是 testRational 类 import java.math.BigInteger;
这段代码的目的是计算 (1/2+3/4+...+99/100)^2。但是我的循环无法正确执行。r1 的结果是 3/4 而不是 99/100,我的代码有什么问题?我认为我的循环可以运行,因为我可以正确地得到它。那么如何更正我的代码并使其能够计算 (1/2+3/4+...+99/100)^2 ?谢谢你的回答。这段代码的目的是计算 (1/2+3/4+...+99/100)^2。但是我的循环无法正确执行。r1 的结果是 3/4 而不是 99/100,我的代码有什么问题?我认为我的循环可以运行,因为我可以正确地得到它。那么如何更正我的代码并使其能够计算 (1/2+3/4+...+99/100)^2 ?谢谢你的回答。
c++ - 用四舍五入提升rational_cast?
我怎样才能做一个rational_cast<int64_t>
四舍五入?
目前我正在做这样的黑客攻击:
但我希望能够在不涉及浮点的情况下“正确”地做到这一点。
java - ADT 合理实现的java语法帮助[错误:找不到符号]
所以我试图在java中为有理数构建这个ADT,但由于某种原因,我不断收到这个错误,说在尝试编译时找不到符号。我做错了什么?这个错误是因为我的语法吗?
// ****************** 构造函数 ***************************** *****
//********************* GETTERS *************************** **********
// ******************* 操作 *************************** ******
//********************* 工具 ************************** ************
//************************ 测试单元 *************************** *********
c++ - 将理性演员提高一倍
使用针对 boost 1.62 编译的以下代码:
我得到以下输出:
我希望rational_cast 输出 249999.5 谁能解释我做错了什么?
rust - 将 Rational64 舍入到分数的下一个倍数而不会溢出?
我使用 num-rational crate 的Rational64
类型将数字表示为有符号 64 位整数的比率。我试图将一个数字向下舍入为另一个数字的下一个倍数,当我以两种明显的方式中的任何一种进行操作时,我遇到了整数溢出问题。请注意,这两个数字都可能是分数。
归一化为整数
(操场)
减去余数
(操场)
有没有办法让它n
向下舍入到increment
整数溢出的可能性较小的倍数?如果我必须提取分子和分母(两种 Rusti64
类型)并直接对它们进行数学运算,那很好。
c++ - 将十进制数转换为其有理数时的精度问题
我有将双精度(比如N)转换为 p/q 形式(有理形式)的问题,为此我有以下策略:
- 将 N 乘以一个大数,例如 $k = 10^{10}$
- 然后
p = y*k
和q = k
- 拿来
gcd(p,q)
找找p = p/gcd(p,q)
_q = p/gcd(p,q)
时N = 8.2
,如果我们用纸笔解决,答案是正确的,但如(double)中8.2
表示的那样,它会导致其有理形式转换出现问题。8.19999999
N
我尝试过其他方式:(我使用了一个大号 10^k 而不是 100)
if(abs(y*100 - round(y*100)) < 0.000001) y = round(y*100)/100
但是这种方法也不能一直给出正确的表示。
有什么办法可以进行从 double 到 p/q 的等效转换?
java - 数字类 doubleValue 的异常
当我运行我的 main 方法时,我得到以下异常:线程“main”java.lang.StackOverflowError 中的异常,然后是:在 Rational.doubleValue(Rational.java:62) 中出现了 100 多次。这是为我提供主要课程的作业,因此我无法更改其中的任何内容。这是我的代码:
这是主类(我无法修改)
python - 将整数数组转换为它们比率的 SymPy 矩阵
我想将整数的 3D 数组更改SymPy
为有理数矩阵。我知道我应该使用Sympy
(Rational
和Matrix
) 但我不知道该怎么做。
例如,
应该成为
它应该看起来如何的图片: