数学题:已知数列{an}的各项都是正数,且满足:a0=1,an+1=(4﹣an),n∈N. (1)证明an<an+1<2,n∈N; (2)求数列{an}的通项公式an
证明:
- 首先证明an<an+1,n∈N。由题目的定义可得,
an+1 = 4 - an > 0,∴an < 4。
∵an < 4,又因为an+1 = 4 - an,∴an+1 > 0。
∴an<an+1,n∈N。
- 接着证明an+1<2,n∈N。同样由题目的定义可得,
an+1 = 4 - an < 2,∴an > 2。
∴an+1<2,n∈N。
综上,可得an<an+1<2,n∈N。
求通项公式:
由an+1 = 4 - an 可得,
an+1 + an = 4,
an + an-1 = 4,
…,
a1 + a0 = 4,
a0 = 1。
将各式相加,可得
an+1 + 2an + … + a1 + a0 =4(n+1)。
因此,
an + 2an-1 + … + 2a1 + a0 =4n,
an + 2(an-1 + … + 2a1 + a0) =4n。
∴an = 4n - 2(an-1 + … + 2a1 + a0),n>0。
因为a0 = 1,代入上式可得,
a1 = 3,
a2 = 1,
a3 = 3,
a4 = 1,
…
可得,an的奇数项为3,偶数项为1。
∴an的通项公式为:
an = {
3,n为奇数,
1,n为偶数。
}
Java代码实现:
public class Sequence {
public static void main(String[] args) {
int n = 10; // 求前10项
double[] a = new double[n];
a[0] = 1;
for (int i = 1; i < n; i++) {
a[i] = 4 - a[i - 1];
}
for (int i = 0; i < n; i++) {
System.out.println("a[" + i + "] = " + a[i]);
}
}
}
Python代码实现:
n = 10 # 求前10项
a = [0] * n
a[0] = 1
for i in range(1, n):
a[i] = 4 - a[i - 1]
for i in range(n):
print("a[{}] = {}".format(i, a[i]))
C++代码实现:
#include <iostream>
using namespace std;
int main() {
int n = 10; // 求前10项
double a[n];
a[0] = 1;
for (int i = 1; i < n; i++) {
a[i] = 4 - a[i - 1];
}
for (int i = 0; i < n; i++) {
cout << "a[" << i << "] = " << a[i] << endl;
}
return 0;
}
JavaScript代码实现:
let n = 10; // 求前10项
let a = new Array(n);
a[0] = 1;
for (let i = 1; i < n; i++) {
a[i] = 4 - a[i - 1];
}
for (let i = 0; i < n; i++) {
console.log("a[" + i + "] = " + a[i]);
}
PHP代码实现:
<?php
$n = 10; // 求前10项
$a = array();
$a[0] = 1;
for ($i = 1; $i < $n; $i++) {
$a[$i] = 4 - $a[$i - 1];
}
for ($i = 0; $i < $n; $i++) {
echo "a[" . $i . "] = " . $a[$i] . "\n";
}
?>
C#代码实现:
using System;
class Sequence
{
static void Main()
{
int n = 10; // 求前10项
double[] a = new double[n];
a[0] = 1;
for (int i = 1; i < n; i++)
{
a[i] = 4 - a[i - 1];
}
for (int i = 0; i < n; i++)
{
Console.WriteLine("a[" + i + "] = " + a[i]);
}
}
}
Objective-C代码实现:
#import <Foundation/Foundation.h>
int main() {
@autoreleasepool {
int n = 10; // 求前10项
double a[n];
a[0] = 1;
for (int i = 1; i < n; i++) {
a[i] = 4 - a[i - 1];
}
for (int i = 0; i < n; i++) {
NSLog(@"a[%d] = %f", i, a[i]);
}
}
return 0;
}
Go代码实现:
package main
import "fmt"
func main() {
n := 10 // 求前10项
a := make([]float64, n)
a[0] = 1
for i := 1; i < n; i++ {
a[i] = 4 - a[i - 1]
}
for i := 0; i < n; i++ {
fmt.Printf("a[%d] = %f\n", i, a[i])
}
}
以上代码均可输出数列的前10项。
博客围绕数列{an}展开,已知a0=1,an+1=(4﹣an)。先证明了an<an+1<2,接着求出通项公式,an奇数项为3,偶数项为1。还给出了Java、Python、C++等多种语言代码实现,可输出数列前10项。

被折叠的 条评论
为什么被折叠?



