C ++长师?

时间:2014-04-11 04:39:28

标签: c++

我在如何编写一个算法来寻求帮助,以便在C ++中划分两个非常大的数字(每个约100个数字)。我现在想指出我根本不是程序员!

我只是为了娱乐目的这样做,所以我设法获得了一些免费的分区算法,但它们似乎都不是我想要的!即,它们全部仍然只有16位数的精度!

有些人告诉我要找一个bignum图书馆(我必须查看其实际含义) 我从www.hvks.com获得了一些随意的精密包装,但我不知道如何实际使用它!

任何帮助都非常感谢,因为我不知道该怎么做!

2 个答案:

答案 0 :(得分:4)

您将使用100位数处理一些数字。

  1. 您可以参考一些图书馆,例如Boost::multiprecision 这里基于您使用的数字类型,精度将是任意大的(仅受可用内存限制),在编译时固定(例如50或100个十进制数字),或由成员函数在运行时控制的变量。这些类型是启用表达式模板的,以提供比天真的用户定义类型更好的性能。

  2. 接下来是,GNU Multiple Precision Arithmetic Library 这是一个用于任意精度算术的免费库,除了GMP运行的机器中可用内存所暗示的精度外,对精度没有实际限制。

  3. 另一个想法是编写自己的数据结构,以便在char指针的帮助下处理这种数值运算。您可以将数据保存为char数组,并相应地进行拆分以进行操作。如果您的目的没有合适的库,请使用此方法。

  4. 希望这会对你有所帮助。

答案 1 :(得分:1)

是啊@EdHeal说的

  

答案需要讲授课程 - Ed Heal

我不会说这是开始编程的地方,因为需要大量关于主题的背景信息。例如,为什么只有16位数的精度?对我来说,在尝试这一点之前要知道这一点似乎是明智的。更不用说在C ++中实际编写类似内容时需要理解的所有语法。现在我并不是要劝阻你,但对于一个非程序员而言,这个问题的广度要求答案太大而不能给予,或者至少想要尝试。您至少需要学习编程的基础知识以及如何在自己的程序中实际使用库。只是向您展示如何在IDE中设置链接过程可能会占用一页或更多页面。此外,由于你不理解最后一句话(或者至少可能没有给你编程新手),我认为它需要在这种事业之前熟悉编程世界。谷歌是你最好的朋友......