古巴比伦算法求平方根
时间: 2023-11-10 14:04:50 浏览: 53
古巴比伦算法是一种求***的真实值。具体步骤如下:
1. 假设要求解的数为N,取任意一个初始值x0作为平方根的近似值。
2. 根据古巴比伦公式,计算下一个近似值x1 = (x0 + N/x0)/2。
3. 重复步骤2,直到x的变化足够小或达到了预设的迭代次数。
最终得到的x就是N的平方根的近似值。
相关问题
python古巴比伦算法实现平方根
以下是Python实现古巴比伦算法求平方根的代码:
```python
def sqrt(num):
if num < 0:
return None
if num == 0:
return 0
x = num
y = (x + 1) // 2
while y < x:
x = y
y = (x + num // x) // 2
return x
```
现代的科技语言里最常见的计数方式为十进制。在编程语言课里,我们也会看到二进制、八进制、十六进制。但对于古老的文明,还存在其它的计数方式。比如在古埃及,常见的计数方式是十二进制;在南美洲的阿兹特克文明,常见的是二十进制,而在古巴比伦文明,主流的是六十进制。我们现在使用的计时里的十二进值和六十进制,其实是古代文明遗留下来的痕迹。 对于任意一个D进制、位数为N的数in-1..·izo,其中 e 0,1.·D -1,k =0,1,·.·,V -1,其对应的十进制数即为 Dk0 基于这个规律,给定任意一个十进制的数S,我们可以写出相应的D进制的数。容易得知,如果S对应D进制的数为i-1·.·izi1i0,则io = S%D,in-.··zi = S/D。对于数in-1···izi1,通过类似的操作,我们可以继续得到ii。如此进行下去可以得到所有的ik,k = 0,1,..·,N -1。比如对于十进制数S = 60,其对应的八进制数可以计算得到为(7,4)。这里我们在数字之间加逗号是考虑到高于十进制的计数方式。请编程实现上述从十进制到任意进制的过程。假设当前的十进制数字为121771(13 x 17 x 19 x 29),请分别计算并输出它所对应的十二进制、二十进制、六十进制的数。提示:为了实现数字从高位到低位的输出顺序,可以使用矢量vector来存储各位数字并输出。写出代码并给出思路
思路:
1. 定义一个函数,接收两个参数:十进制数S和目标进制D。
2. 在函数内部,定义一个空的 vector 数组,用于存储每一位的数字。
3. 使用 while 循环,当S不为0时,执行以下操作:
a. 将S对D取模,得到最低位的数字,并将其插入到 vector 数组的最前面。
b. 将S除以D,更新 S 的值。
4. 输出 vector 数组中的每一个数字,即可得到目标进制下的数。
代码实现: