小编Art*_*que的帖子

整数 数字的平方根

并不是我不明白如何求一个数的整数平方根。我知道使用 Python 和 C++ 查找它们的几种方法。

\n

只是这个算法实在是太伤脑筋了。而且必须用 SML 编写它是另一个令人头疼的问题。

\n

请帮助我理解这个算法。请注意,这应该使用递归:

\n
\n

的整数平方根是满足 \xc2\xb2\xe2\x89\xa4<(+1)\xc2\xb2 的整数。\n可以使用以下归纳过程计算整数平方根:

\n
    \n
  1. 递归计算 = div 4 的整数平方根。然后我们有 \xc2\xb2\xe2\x89\xa4<(+1)\xc2\xb2。
  2. \n
  3. 由于 和 是整数,所以我们有 (+1)\xe2\x89\xa4(+1)\xc2\xb2。因此我们有 (2)\xc2\xb2\xe2\x89\xa44\xe2\x89\xa4<4+4\xe2\x89\xa4(2+2)\xc2\xb2。
  4. \n
  5. 因此我们知道 的整数平方根是 2 或 2+1。
  6. \n
\n

编写与上述算法相对应的递归 ML 程序。

\n
\n

algorithm recursion sml smlnj square-root

2
推荐指数
1
解决办法
1114
查看次数

标签 统计

algorithm ×1

recursion ×1

sml ×1

smlnj ×1

square-root ×1