在 SymPy 中使用其他基本系统



如何在 SymPy 中使用另一个基本系统?我想做一些类似于Rational(string)但不是在 10 进制中的事情。

你需要

的大部分东西都可以在Python中找到:

def sdigits(s, b, tuple=False):
    p = len(s.split('.')[1])
    n, d = (int(s.replace('.', ''), base=b), b**p)
    if tuple:
        return n, d
    return '%s/%s' % (n, d)

这将产生以下结果,

sdigits('1.1', 3) -> '4/3'
sdigits('1.01', 3) -> '10/9'
sdigits('-1.12', 3) -> '-14/9'
sdigits('-1.12', 3, tuple=True) -> (-14, 9)
sdigits('1.2', 4) -> '6/4'

要从 SymPy 提供简化比率的能力中受益,您可以将任一输出传递给 Rational:

Rational(sdigits('1.2', 4)) -> 3/2
Rational(*sdigits('1.2', 4, tuple=True)) -> 3/2

相关内容

  • 没有找到相关文章

最新更新