一、数学专题常见题型
考察类型 | 考察范围 |
---|---|
公式类 | 数列规律:等差数列,等比数列 |
组合数学类 | 排列组合:容斥原理,加法原理 |
约数问题 | 约数的统计、最大公约数的查找 |
质数问题 | 质数筛选 :埃式筛法、质数的应用 |
二、数学专题–数列规律
- 通项公式、前n项求和公式
1)等差数列、等比数列
数列类型 | 通项公式 | 求和公式 |
---|---|---|
等差数列 | an=a1+(n-1)*d | Sn=1/2n*(an+a1) |
等比数列 | an=a1*qn-1 | Sn=a1(1-qn)/(1-q) |
a1:数列首项
n:数列的项数
d:数列的公差
q:数列的公比
an:数列的前n项
2)其他类型数列
数据类型 | 通项公式 | 求和公式 |
---|---|---|
12+22+32+… | an=n2 | Sn=1/6n(n+1)(2n+1) |
13+23+33+… | an=n3 | Sn=[1/2n(n+1)]2 |
12+32+52+… | an=(2n-1)2 | Sn=1/3n(4n2-1) |
斐波那契数列 | an=an-1+an-2 | - |
- 数列规律问题的解题思路:使用递推算法,通过计算前面的一些项来得出序列中的 指定项的值。
三、数学专题–组合数学
考察类型 | 定义 | 数学表达式 |
---|---|---|
加法原理 | 完成一件事的方法分为几类,每一类的任何一种方法都能完成任务。 | 方法数=方法1+方法2+方法3+… |
乘法原理 | 完成一件事的方法分为几步,每一步有多种方法,这几步缺一不可。 | 方法数=方法1方法2方法3*… |
容斥原理 | 统计对象数目时,先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,最后最后再把计算出来,最后再把计数时重复计算的数目排斥出去。 | A∪B=A+B-A∩B |
三、数学专题–数列规律
已知数列的规律,如何编程完成指定项目的求解呢?
递推算法---->通常是通过计算前面的一些项来得出序列中的指定项的值。
递推算法是序列计算中的一种常用算法。
数列求解
【问题描述】
信息社团杨老师为了选拔一名小助手,出了一道题目,题中给出一个数列:f[1]=1,f[2]=1,f[i]=3f[i-1]+2f[i-2],要求计算出f[n]。n值由杨老师任意给出(1=<n<=15),请开动脑筋,快来挑战吧!
【样例输入】
4
【样例输出】
17
分析:
第一步:总结出数列的规律,得到数列中前两项是特殊项,均为1,从第三项开始,满足以下规律:f[i]=3f[i-1]+2f[i-2]。
第二步:确定方法,使用递推算法完成数列第n项的求解。
#include<iostream>
using namespace std;
int main(){
int f[501],n;
f[1]=1,f[2]=1;
cin>>n;
if(n<3) cout << 1;
else{
for(int i=3;i<=n;i++)
f[i]=3*f[i-1]+2*f[i-2];
cout << f[n];
}
return 0;
}
容斥原理的应用
【问题描述】
一个班级中有20人学习英语,有10人学习德语,有三人同时学习英语和德语,问班级中共有几人学习外语?
分析:用集合A、B分别表示学习英语和德语的学生,那么学习外语的学生就可以用集合A∪B = A + B - A∩B = 20+10 - 3 =
27人。 答案:27
扑克牌问题
【问题描述】
两个小伙伴要玩扑克牌比大小的游戏:每人分到一种花色的扑克牌,然后每人随机出一张牌,大者胜,最后获胜次数多的人,赢一轮。意外的事情发生了,玩了一轮后,发现扑克牌竟然少了一张。到底少了几张呢?你能写个程序快速找到扑克x吗?
输入:输入一行,包括25个空格分隔的数字(A表示为1,J、Q、K表示为11、12、13).。
输出:输出数字x,表示缺少的扑克牌数字。
【样例输入】
9 1 13 2 6 10 7 8 3 11 4 1 5 9 10 2 4 3 12 13 11 5 8 6 7
【样例输出】
12
分析:
第一步:根据题目情境–>归纳问题类型
第二步:容斥原理问题:总体=部分1+部分2–>部分1=总体-部分2.
第三步:先统计现有扑克牌的数字总和S1–>用完整扑克牌的数字总和-S1–>得到缺失那张牌的数字S2.
#include<iostream>
using namespace std;
int main(){
int num,i,s=0;
for( i=0;i<25;i++){
cin>>num;
s+=num;
}
s=182-s;
cout<<s;
return 0;
}