问题标签 [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.

0 投票
1 回答
229 浏览

java - java的Rational类无法运行程序

所以我们必须创建一个执行以下操作的 Rational 类。在 Java 中创建一个包含 Rational 类的项目。该类表示有理数。它应该只有 2 个字段 num 和 denom。它应该具有以下公共方法(以及所需的任何其他私有方法):

  • 一个将 num 和 denom(按此顺序)作为初始字段值的构造函数。如果 denom 为 0,则将数字设置为 0/1。
  • num 的访问器 (getNum)
  • denom 的访问器 (getDenom)
  • 一个 toString 方法,它返回“num/denom”(无空格)形式的字符串,其中 num 和 denom 具有存储的值
  • 一个 add 方法,它接受一个有理数 r 并返回一个有理数,该有理数是 r 与这个有理数相加的结果。它不应该改变这个有理数。
  • (加分 - 2 分)一个没有参数的 reduce 方法,将这个有理数减少到最低形式。

我有我在 Intellij IDEA 中完成的代码,但它不会让我运行程序。我知道我在大多数事情上都会出错,但我相信这只是因为我没有把东西放在正确的地方或遗漏了一些东西。这就是我到目前为止所拥有的。

0 投票
1 回答
127 浏览

matlab - 在 GNU Octave / Matlab 中执行合理加法的有效方法

给定 F,一个 nx2 分数矩阵 ( [num1, den1; num2, den2; ...]),如何有效地计算它们相加得到的分数?(即[F(1,1)*F(2,2)*...*F(n,2) + F(1,2)*F(2,1)*F(2,3)*...*F(n,2) + ... , F(1,2)*...*F(n,2)])。结果不必是不可约的形式,重点是效率(意思是矢量化,而不是 C 代码)。

0 投票
3 回答
1313 浏览

java - 为什么我的方法打印不出来?

我在一个类中创建了一个主要方法,在另一个类中创建了许多其他小方法。当我在我的主要方法中使用它们的位置调用它们并确保如果我调用它们时它们会打印出来,它们仍然不会打印出来。只有 print 两种方法显示任何输出。我不确定如何修复它,所以我还没有尝试过很多事情。您能否查看我的代码并检查它们为什么不起作用?

更新:除了 28 在我收到的帮助下工作之外,我已经设法在 main 方法中获得所有行。现在剩下的就是那个输出了。我已经更改了代码,使其工作得更好一些,如果它不输出,它会关闭,但输出仍然丢失。包理性;

我的主要方法

我的其他方法类

0 投票
0 回答
82 浏览

c# - boost 的 gmp_rational 类型在执行比较操作时非常慢

我将 boost 的 gmp_rational 数据类型的性能与 C# 的 SolverFoundation.Rational 类型的性能进行比较。使用 gmp_rational 执行算术比 C# SolverFoundation.Rational 快得多,除了比较操作。我在 C++ 和 C# 中实现了以下功能,并对其性能进行了比较。

如果没有最后一个比较操作“j > k”,该函数需要 5.5 秒。有了它,该功能需要 33 秒。

我在 C# 中实现了相同的方法并进行了相同的比较。如果没有最后一个比较操作“j > k”,该方法需要 19 秒。有了它,该方法需要 19.6 秒。所以 C# 代码比 C++ 代码还要快,但我不明白为什么。

0 投票
2 回答
4627 浏览

ruby - Ruby代码删除无关紧要的小数位?

我想得到一个优雅的代码,它删除了无关紧要的关闭零,例如:

我试过了:

但并非在所有情况下都有效,例如在 25.00 上给出 25.0

0 投票
1 回答
270 浏览

floating-point - `Rational` 和 `BigNum` 实现有什么区别

许多语言都有很多这样的类型。据我所知,这是它的工作原理。

Rational只为分子和分母存储两个单独的数字(如 0.3 的 3 和 10)。

BigNum将数字的每个数字存储在某种“数组”中,并像人类通常做的那样进行列算术。例如,0.1 个商店,如 [0, '.', 1]。如果我们想给它加上 0.2,它会产生这样的结果:

我对吗?还有其他流行的任意精度算术吗?如果有,它是怎么称呼的?

我不是在谈论任何具体的实现,而是它通常做什么的一般概念。

0 投票
2 回答
1713 浏览

haskell - Haskell 中 Rationals 的模式匹配

以下函数非常简单:

确实,test 0 == 0test 1 == 1, 和test 77 == 2

以下函数几乎同样简单:

在 GHCi 中加载此代码会出错Parse error in pattern: 1 % 2

是什么赋予了?为什么我不能对有理数进行模式匹配?我可以用警卫解决这个例子的现实问题,但我很好奇为什么模式匹配不起作用。

0 投票
0 回答
1228 浏览

java - Java中的有理数

我正在为一个实验室做以下事情,除了最后一个名为“divide”的方法之外,我正在用他们给我们的文件编译所有东西。它的重点是使用有理数进行不同的操作。这是我的divide方法代码。我还包括了班级的名称:

我们得到的编译它的代码如下。当我注释掉必须处理上述除法方法的最后两行时,我的其余代码(此处未包含)与此完美编译。

我在尝试编译时遇到的错误是:

发现 2 个错误:[行:17] 错误:找不到符号符号:变量 divideResult 位置:类 Rational [行:18] 错误:找不到符号符号:变量 divideResult 位置:类 RationalDemo

我不确定我在这里做错了什么或为什么会弹出此错误消息。

0 投票
3 回答
424 浏览

java - 有理类 - 无法减少分数和除法

我的 Rational 类应该加、减、乘和除分数,所以当在主类中调用时,它将执行这些操作。但是,我似乎无法正确减少分数(gcd)以获得正确的答案,并且除法方法根本没有运行(我收到一条错误消息):

线程“主”java.lang.ArithmeticException 中的异常:/在 Project1.main(Project1.java:12) 的 Rational.division(Project1.java:45) 处为零

我该如何解决这些问题?谢谢

公共类项目1 {

}

类理性{

}

0 投票
2 回答
150 浏览

go - big.Rat 中的数据竞赛

我使用 math/big.Rat 来表示数字以确保准确性。Denom() 返回数字的分母,Cmp() 用于比较两个数字。它们似乎都是纯只读函数。但是当我在启用数据竞争的情况下运行我的代码时,我的整个假设都出错了。当这些函数与同一个 Rat 实例同时调用时,系统会抛出数据竞争场景。这些函数不是只读的吗?

我的测试用例

当我检查源时,每次调用 Denom() 函数时,它都会重置同一对象中的值。这是源头的问题吗?或者我不应该同时使用 Rat Denom() 和 Cmp()。

来自 Golang 的 Denom() 源代码用于 ref

我根据下面的讨论添加了更多观点,并且我承认我在将变量“i”用于预期目的时犯了一个错误(但它仍然可以显示数据竞争场景)。

我的观点是在 Denom() 中执行的操作不会对 Rat 表示的值进行修改。这可以在创建 Rat 时执行以表示一个值,或者在 Rat 中设置一个新值。我担心的是一次又一次地重复计算相同的值(不是并发安全的),除非由 Rat 表示的值被更改。那为什么不能在创建/修改部分完成呢?