编写函数,求1/2+3/4…前n项的和
时间: 2024-11-30 15:15:14 浏览: 21
编写一个函数来计算等差数列 \( \frac{1}{2} + \frac{3}{4} + ... + \frac{n}{2n} \) 的前 n 项和,可以使用数学公式或者编程的方式来实现。这个数列实际上是分数序列,每一项都是分数形式,分母是分子两倍,我们可以将其视为一系列的简单分数之和。
下面是一个简单的 Python 函数示例,它使用循环来直接相加:
```python
def sum_of_series(n):
total = 0
for i in range(1, n + 1):
fraction = i / (2 * i)
total += fraction
return total
```
在这个函数中,`i` 表示每一项的序号,我们计算出对应的分数 `fraction`,然后累加到总和 `total` 中。当 `n` 达到指定值时,返回的就是前 n 项的和。
如果你需要更高效的方法,可以注意到这个数列有一个简化后的公式:\( S_n = \frac{n}{2} \),因为每个分数都可以拆分成 \( \frac{1}{2} + \frac{1}{2n} \),除了第一个 \( \frac{1}{2} \),后面的每个都会抵消掉一次。所以如果 `n` 乘以2不是整数,结果就是 \( \frac{n}{2} \);如果是整数,结果就是 \( \frac{n}{2} - \frac{1}{2} \)。
下面是基于这个公式优化的版本:
```python
def sum_of_series_optimized(n):
if n % 2 == 0:
return n / 2 - 1 / 2
else:
return n / 2
```
阅读全文