解析大数问题

大家好,我正在写一些简单的代码来提高功率的基值

然后对输出执行一些操作。我已经包含了我的代码

现在使用,在下面(请参阅此消息的结尾),也可以在下面看到

当我从控制台运行脚本时,这看起来像什么;

.........................................

C:\ PYTHON34> python tst.py

输入值:431.1

输入功率值; 1.9907

结果1739.554505641426658257842063903808593750000000000 000000000000000

.........................................

我需要做什么;

1.)将整数值存储到小数点左边,不带小数

变量= x

2.)抓住小数点右边的整数十进制值并存储在变量中

= y

根据一些简单的规则解析(y)。这是我获取技巧的地方。

我想要做的是检查(y)以查看是否有任何前导前导零和尾随零

在这个例子中; "1739.554505 ....."如果这个值相反,就像下面的任何一个;

1739.0554505

1739.00554505

1739.000554505

然后我想提取整数而不是任何连续的前导零

NEXT,我想减少数字,这样当有四个连续的尾随零时,全部为零

从第一个从前四个连续零点开始的所有后续零点开始

所以在我们的例子中;

"1739.55450564142665825784206390380859375000000000 0000000000000000"

(y)成为"55450564142665825784206390380859375"

接下来我想用%1999取上述值的mod

返回"1407"

接下来我想将此值作为右边的十进制值加入;

1739.1407

好的,现在为什么我会陷入困境?

我仍然是学习Python的新手,所以我实际上并不知道最好的方法是什么。

我想我可能只是对十进制右边的值进行修改,然后将整个事物转换为字符串,然后将每个数字切换并将每个数字单独存储到数组中,然后编写规则集单步执行数组单元格中的字符串,但这似乎也比我想要的CPU时间更长。我希望尽快快速地执行这种操作。

此外,我甚至不知道如何最好地接近这一点,即使我必须将其作为字符串存储到数组中,并且如果我理解正确的字符串处理往往需要比数字计算更多的CPU时间。

任何见解,方向,代码建议非常感谢!

这是我目前使用的代码;

  1. 代码 - >
  2. 进口时间
  3. E0 =了time.time()
  4. C0 = time.clock()
  5. 导入系统
  6. 导入数学
  7. 来自sympy import mpmath
  8. 来自mpmath import *
  9. mpmath.mp.dps = 10000
  10. inputx = float(输入('输入inputx值:'))
  11. powerx = float(输入('输入功率值;'))
  12. inputx_squared = float((mpmath.power(inputx,powerx)))%1999
  13. 打印( '\ R')
  14. print('RESULT','%。60f'%inputx_squared)
  15. elapsed_time = time.time() - e0
  16. cpu_time = time.clock() - c0
  17. 打印( '\ R')
  18. print("CPU TIME;",cpu_time)

查看英文原文

查看更多文章

公众号:银河系1号

联系邮箱:public@space-explore.com

(未经同意,请勿转载)