2023-10-19 22:35:38 +08:00
2023-10-19 22:35:38 +08:00
2023-10-19 22:35:38 +08:00
2023-10-19 22:35:38 +08:00

int2048

高精度计算是一种程序设计的算法。由于中央处理器的字长限制,如 32 位 CPU 中一个整数最大只能取值 4,294,967,295。因此在进行更大范围的数值计算中往往要采取模拟手段。通常通过分离字符的方法通过数字数组进行输入、通过数组倒序输出、通过模拟竖式计算进行计算。一般而言主要模拟的是按位运算可以用不同的进位制达成不同的目的。

本次作业要求用 C++ 实现整数的高精度加减乘除。

实现要求

要求实现一个 C++ 的大整数类,命名为 int2048

接口已在 int2048.h 中给出,你们需要新建一个 int2048.cpp 文件,在其中实现给定的接口。

相应的实现应该在 int2048.cpp 中完成,不要在 int2048.h 中实现。在 OJ 提交中,需要将 int2048.cpp 中的实现复制到 int2048.h 之中,再进行提交。

评分标准

总分共占比 6% 其中

  • Integer 占比 100%
  • code review 若码风较差将酌情扣分

B 班

  • 构造函数以及关系运算符 10%
  • 无符号高精度加减法 10%
  • 有符号高精度加减法 10%
  • 高精度乘法 10%
  • 高精度除法 15%
  • 压位高精度加、减、乘法 30%
  • 压位高精度除法 15%
  • BONUS压位快速高精度除法分治乘法 1%
  • BONUS压位快速高精度除法二分加速试商 4%

A 班

  • 构造函数以及关系运算符 10%
  • 无符号高精度加减法 5%
  • 有符号高精度加减法 10%
  • 高精度乘法 10%
  • 高精度除法 10%
  • 压位高精度加、减、乘法 20%
  • 压位高精度除法(二分加速试商) 15%
  • 压位快速高精度乘法(快速傅立叶变换) 20%
  • BONUS压位快速高精度除法分治除法3%
  • BONUS压位快速高精度除法牛顿迭代法 5%

PSBonus 部分对代码性能也有要求,需要通过对应的测试数据点才能得到分数。且 Bonus 上限为 5%,超过不溢出。

数据范围

参考具体题目。

所有测试点时限均设置为 std 耗时的 2.5 倍以上。

参考资料

OI Wiki

分治除法以及相关算法

Description
No description provided
Readme 15 MiB
Languages
C++ 99.4%
Lua 0.6%