标签: fractions

Java是否自相矛盾?

我应该Math.round(1/2)在Java中声明为int还是double?如果两者都很好,哪个更正确?

另外,为什么Eclipse告诉我Math.round(1/2)= 0.0,而Math.round(0.5)= 1.0?

任何帮助,将不胜感激!

java math fractions

6
推荐指数
2
解决办法
177
查看次数

如何在Haskell中实现^运算符?

我正在为Haskell中的Fraction数据类型创建一堆实例,我想知道是否有一个地方可以实现^运算符.

我的意思是,我有不同的几个实例Num类型和这些实例中,我定义了常见的操作,如+,-等.

有了它,数据类型就像我想要的那样表现为正常数字(意思是我可以调用类似的东西(Frac 1 2) + (Frac 1 4)并返回Frac 3 4)

我想要做的是^直接实施.现在,我已经将它定义为:

(|^|) :: Fraction -> Int -> Fraction
(|^|) f = foldr (*) mempty . flip replicate f  
Run Code Online (Sandbox Code Playgroud)

当我尝试将函数的名称更改^为时,我收到错误,因为它与Prelude的定义冲突^.是否有一种Num类型我可以给我的Fraction类型一个实例允许我^在其上使用运算符?

谢谢!

haskell types operator-overloading fractions

6
推荐指数
1
解决办法
285
查看次数

在R中得到分数的分子和分母

使用fractions库MASS中的函数,我可以将小数转换为分数:

> fractions(.375)
  [1] 3/8
Run Code Online (Sandbox Code Playgroud)

但那么如何提取分子和分母呢?帮助fractions提到了一个属性"压裂",但我似乎无法访问它.

r fractions

6
推荐指数
1
解决办法
2963
查看次数

如何将浮点数转换为由字节分子和分母表示的最接近的分数?

如何编写一个算法,给定一个浮点数,并尝试使用分子和分母(两者都限制在 Java 字节的范围内)尽可能准确地表示?

原因是 I2C 设备需要分子和分母,而给它一个浮点数是有意义的。

例如,3.1415926535...将导致245/78, 而不是314/10022/7

就效率而言,在程序开始时会调用大约三次,但之后就不再调用了。所以慢的算法也不算糟糕。

java algorithm math floating-point fractions

5
推荐指数
2
解决办法
5372
查看次数

Sympy - 合理化表达式中的所有数值?(就像 Mathematica 的 Rationalize[])

是否有一种简单的方法来(尝试)合理化给定 delta 中表达式中的所有数值,就像Rationalize[]在 Mathematica 中一样?

Mathematica 中的一个例子:

In[25]:= Rationalize[0.5 x^2 - 3.333333 x, 10^-4]
Out[25]= x^2/2-(10 x)/3
Run Code Online (Sandbox Code Playgroud)

我看到了这个nsimplify()功能,但这似乎有点矫枉过正。

python sympy fractions

5
推荐指数
1
解决办法
3582
查看次数

使Rational类能够处理数学运算符

我有这个Rational类,每个操作都有一个方法(add,mult等)

function Rational(nominator, denominator){
    this.nominator = nominator;
    this.denominator = denominator || 1;    
}

Rational.prototype = {
    mult: function(that) {
        return new Rational(
            this.nominator * that.nominator,
            this.denominator * that.denominator
            );
    },
    print: function() {
        return this.nominator + '/' + this.denominator;
    }
};

var a = new Rational(1,2),
    b = new Rational(3);

console.log( a.mult(b).print() ); // 3/2
Run Code Online (Sandbox Code Playgroud)

我可以让它更"自然",例如启用console.log( a * b )吗?

javascript dsl operator-overloading fractions prototypal-inheritance

5
推荐指数
1
解决办法
206
查看次数

将小数转换为字符串,括号中包含重复的小数位

我想在Python 3中编写一个函数,它将作为分子和分母给出的分数转换为它们的字符串表示形式,作为十进制数,但在括号中包含重复的小数位.

一个例子:

  • convert(1, 4) 应该输出 "0.25"
  • convert(1, 3)应输出"0.(3)"而不是"0.3333333333"
  • convert(7, 11)应输出"0.(63)"而不是"0.6363636364"
  • convert(29. 12)应输出"2.41(6)"而不是"2.4166666667"

我当前的代码在问题的最后,但如果有非重复重复的小数位,它将失败.这是一个包含调试输出(注释print调用)的示例运行:

----> 29 / 12
5
appended 4
2
appended 1
8
index 2 ['29', 2, 8] result ['2.', '4', '(', '1']
repeating 8
['2.', '4', '(', '1', ')']
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?


我的代码:

def convert(numerator, denominator):
    #print("---->", numerator, "/", denominator)
    result = [str(numerator//denominator) + "."]
    subresults = [str(numerator)]
    numerator %= denominator
    while numerator …
Run Code Online (Sandbox Code Playgroud)

python math fractions number-formatting

5
推荐指数
1
解决办法
2325
查看次数

Python 2.7 - 续分数扩展 - 理解错误

我编写了这段代码来计算使用欧几里德算法的有理数N的连续分数展开:

from __future__ import division

def contFract(N):
    while True:
        yield N//1
        f = N - (N//1)
        if f == 0:
            break
        N = 1/f
Run Code Online (Sandbox Code Playgroud)

如果说N是3.245,则函数永远不会结束,因为显然f永远不等于0.扩展的前10个术语是:

[3.0,4.0,12.0,3.0,1.0,247777268231.0,4.0,1.0,2.0,1.0]

这显然是一个错误,因为实际扩展只是:

[3; 4,12,3,1]或[3; 4,12,4]

是什么原因引起了这个问题?这是某种舍入错误吗?

python division integer-division fractions continued-fractions

5
推荐指数
1
解决办法
405
查看次数

分数.f字符串作为__format__的float

当使用fraction.Fraction在F-字符串我希望能够格式化为一个float。但是我得到了TypeError

from fractions import Fraction
f = Fraction(11/10)
f'{f} as float {f:.3f}'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported format string passed to Fraction.__format__
Run Code Online (Sandbox Code Playgroud)

似乎可以/应该支持浮点格式规范Fractions

有趣的是,它们用于Decimal

from decimal import Decimal
f = Decimal('1.1')
f'{f} as float {f:.3f}'
Run Code Online (Sandbox Code Playgroud)

这有什么原因不起作用Fraction吗?

是的,我知道我可以做,f'{f} as float {float(f):.3f}'但是我在问为什么要这样做。

python string-formatting fractions

5
推荐指数
1
解决办法
99
查看次数

如何避免在 std::modf 中使用临时变量?

我最近遇到了一个问题,我在 MSVC 中遇到了段错误,而在 GCC 中却没有。

几个小时后,我意识到显然我的 MSVC 版本不支持以下语法:

double value = 3.4;
double fractional = std::modf(value, nullptr);
Run Code Online (Sandbox Code Playgroud)

我不想要/关心数字的整个部分。

是的,我知道我可以做“3.4 - 3.0”之类的,但我担心以这种方式专门使用 modf。目前我只能通过以下方式看到这样做:

double temp; 
double value = 3.4;
double fractional = std::modf(value, &temp);
Run Code Online (Sandbox Code Playgroud)

有没有办法绕过这个临时变量?

c++ modulo fractions cmath visual-c++

5
推荐指数
2
解决办法
568
查看次数