问题标签 [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 回答
125 浏览

java - 通过 BigDecimal 转换为浮点的适当比例

我编写了一个任意精度的有理数类,它需要提供一种转换为浮点的方法。这可以通过 BigDecimal 直接完成:

但这需要在除十进制数时为 scale 参数设置一个值。我选择 17 作为最初的猜测,因为这大约是双精度浮点数的精度,但我不知道这是否真的正确。

什么是正确的数字,定义为最小的数字,使得它变得更大不会使答案更准确?

0 投票
1 回答
590 浏览

c++ - 如何在 C++ 中对有理数数组进行排序?

我想对整数类型的有理数数组进行排序。我使用了冒泡排序算法。我将分子与分母相除,然后根据它们的浮点商值比较两个有理数。但是,我没有得到正确的结果。

排序代码:

交换代码:

比较代码:

主要的

电流输出: 在此处输入图像描述

预期输出:

在此处输入图像描述

它可以按升序或降序排列。

提前致谢。

0 投票
1 回答
198 浏览

agda - 如何证明正有理数上的减半函数总是存在的?

终止检查器在最后一种情况下失败了,这并不奇怪,因为递归显然既没有资金也没有结构。尽管如此,我很确定这应该是有效的,但不知道如何证明∃-halve. 关于如何做到这一点的任何建议?

0 投票
1 回答
105 浏览

actionscript-3 - 将十进制数转换为分数 AS3

我正在尝试将小数转换为分数,例如,我写了一些东西var _pow:int = Math.pow(base,i),如果i结果是负数,它会给出一个小数(例如:3 ^ -2),我是目前被困在试图找到一种方法将 _pow 变成分数(所以 _pow 超出 100)所以我尝试这样做var _pow:int = Math.pow(base,i) * 100应该阻止它成为小数,但它没有显示在动态文本中,而且这只发生在i负数时

0 投票
1 回答
134 浏览

haskell - 将有理数转换为字符串

我有以下要求:给定一个有理数(x % y):

  1. 如果 y != 1 => 返回 "x y"
  2. 否则:返回“x”

以下功能有效:

有没有可能让它更优雅?例如,我在 Data.Ratio 的来源中看到它对函数输入使用了一些符号:(x:%y),但它对我不起作用。所以我必须使用letand 显式调用numeratorand denominator

0 投票
1 回答
221 浏览

precision - 使用连分数计算平方根,精度为 n 位

这是我过去的任意精度有理数 C++ 分配中的一个未解决的问题。

为了计算,我使用了 Wikipedia 中的这个表达式a是初始猜测,r是余数):

平方根的连分数

我最终通过实验猜测,采用了这种方法:

  1. 在分子/分母上使用整数平方根函数,将其用作猜测
  2. 迭代连分数直到分母的二进制长度至少是目标精度

这足以让我通过官方测试,但是,从我的测试来看,精度太高(有时几乎翻倍)——即代码效率低下——而且我没有证据证明它在任何输入上都有效(因此没有信心在代码中)。

代码的简化摘录(natural/rational存储任意长度的数字,假设所有操作都以最简单的形式返回分数):

可以做得更好吗?如果是这样,怎么做?

0 投票
0 回答
95 浏览

c - 有什么方法可以在 flex 扫描仪中描述有理数?

我想设计一个解析器来识别正确编写的有理数算术表达式。准备好的分析器应该用小数破折号识别符号中的有理数,小数破折号由分子和分母组成,用符号分隔,例如 2 | 3(三分之二)或 12 | 5(五分之十二,即五分之二和二)。

负数和正数都应该被识别。

此外,右括号和左括号以及运算符:+、-、*、/ 应该是可识别的(分别为加法、减法、乘法和除法)。对于每个正确编写的表达式,程序应将其数值打印到标准输出。

现在我可以用整数做类似的代码。我看不到有理数的方法。

你有什么建议吗?

我尝试过这样的事情,但它不会在所有情况下都能正常工作。

bot_max 是最小分母 DIV 是除法字符(int|int 其中| 是除法)

0 投票
1 回答
63 浏览

floating-point - 用极限分母合理化数字

我知道 Maxima CAS 可以使浮点数合理化(转换为比率):

是否可以像在 python 中一样使用极限分母来合理化浮点数?

我想将限制分母设置为 10,结果为 1/6。

0 投票
1 回答
44 浏览

python-3.x - 为什么我不能在 Python 3.8 中使用类 numbers.Rational 中的这些有理数、分子和分母?

有人可以帮助我理解如何使用这些有理数、分子和分母吗

*class numbers.Rational Subtypes Real 并添加分子和分母属性,这些属性应该是最低的。有了这些,它为 float() 提供了默认值。

分子摘要。

分母摘要。*

这是官方文档的链接

这是官方代码的链接

在此处输入图像描述

0 投票
0 回答
199 浏览

haskell - 化简为简单分数

在这里,我在 Haskell 中实现了 Nat(正整数)数据类型和 Sign(对于所有整数)数据类型,并分别实现了它们的 Plus 函数,它们工作正常。现在,我正在考虑将这些扩展到有理数,因此引入了 Ratio 数据类型来覆盖这些数据类型并分别实现了它的 plus 函数,但是我从这些得到的回报将是分数中的值,这些值可能不是它们各自最简单的形式,因此我只想从这些函数返回,分数很简单,即分子和分母的 gcd 为 1。我实现的代码如下->