- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西南交通大学峨眉校区2017年
全国大学生数学建模竞赛第一次预选赛试题
题目(A题 房屋拆迁偿还问题)
姓名
王杨
学号
2016117557
专业
电气工程
联系电话QQ
1142581599
病人人数统计问题
一家做人体机能康复治疗的医院刚开张。如果现在有个病人来就诊,则个月后还有在此治疗。假设这家医院第一个月初有300人来治疗,并且开张后不定期有病人来医院就诊,大概平均每月有10名新病人。试估算从现在开始到第15个月后在医院的病人人数有多少?
解:设第t个月后医院人数为
第一个月初有300人,本题欲求第15个月后即时医院的人数所以
则这300人第15个月后还剩下 人。
每月都会增加10名新病人,将新增病人函数连续化:
即每月增加10人,设在个月后还留在医院的新增病人数为
则个月后增加10人。设在t月后在医院的新增人数为 ,则个月后还留在医院的新增人数为人,选择[0,15]为积分区间,则15个月后还留在医院的新增人口为。
= +247
最后还留在医院的人数有247人。
寻找素数
因1234567=127*9721是一个合数,现在请你寻找最靠近1234567的一个素数。要求给出寻找的策略算法、相应的程序及最终结果。
一、 策略算法:
首先1234567为一个素数,即它除了1和它本身两个因子外还存在其他的因子,现在欲找到距离1234567最近的一个素数,我们应分两个方向去找,一个为大于1234567且距离它最近的素数,另一个为小于1234567且距离它最近的数,然后这两个数与1234567的差的绝对值再进行比较大小,绝对值越小意味着距离1234567越近。
然后,欲想找到距离1234567最近的一个素数,我们可以用两层循环嵌套进行查找,外层循环实现从1234567开始数的增加或减少功能,内层循环实现判断这个数是否为素数,一旦找到第一个数便跳出外层循环,这个数即为某个方向上距离1234567最近的一个素数。本题需要从两个方向寻找距离1234567最近的素数,故用两个两层循环嵌套便可实现找到不同方向距离1234567最近的素数。
最后,我们要判断一个数是否为素数,我们知道,素数是除了1和它本身两个因子外还存在其他因子的数。所以我们在内层循环设计时便利用给某位数取余的方法来判断,即某位数对从2开始到进行取模运算并与0进行比较。如果中间过程中取模运算得到0,即找到了该数的另一个因子,则可判断出该数为合数,故跳出内层循环,继续寻找。
但这种方法运算量大,我们可以在判断素数方法上进行程序优化,数学证明,一个数n如果不能被2到n的平方根之间的数整除,则这个数就可以判定是素数。故取余运算可以从2开始到即可,这种优化方法大大减少了运算步骤,除此之外,我们还可以进行筛选法,首先判断n是否为2,3,5,7,11……等的倍数,若对这些数取余为0,便可直接跳出内层循环,继续查找。
二、 源程序:
#includeiostream
#includemath.h
using namespace std;
void main(void)
{
long int i,j,x=0,y=0;
for(i=1234567;i=9999999999;i++)
{
for(j=2;jsqrt((double)i);j++) /*从2到进行取模运算并与0比较*/
if(i%j==0) break; /*如果找到了其他的一个因数,便跳出内层循环,继续寻找*/
if(j=sqrt((double)i)) /*如果次数大于等于,说明不存在其他因子,即找到了这个素数。*/
{
x=i;
cout大于1234567的数中,距离其最近的素数为xendlendl;
break; //找到一个素数便可跳出外层循环
}
}
for(i=1234567;i=2;i--)
{
for(j=2;jsqrt((double)i);j++)
if(i%j==0) break;
if(j=sqrt((double)i))
{ y=i;
cout小于1234567的数中,距离其最近的素数为yendlendl;
break;
}
}
if(x-12345671234567-y) //进行距离的判断
cout距离1234567最近的素数为xendlendl;
else if(1234567-x==y-1234567)
cout距离1234567最近的数有两个分别是y xendlendl;
else
cout距离1234567最近的素数是yendlendl;
}
三、
您可能关注的文档
- 二班尊师爱校主题班会.ppt
- 二街中心小学苏教版语文小升初复习资料.doc
- 二轮复习专题十《化学实验基础知识》.pptx
- 二轮专题地理展示.ppt
- 二年级奥数加减法的巧算.ppt
- 二年级奥数题有答案.docx
- 二年级看图写话基础训练.ppt
- 二年级秋学期班会记录.doc
- 二年级上《民族及专题》教案.docx
- 二年级上册教材分析定稿.ppt
- 2023咸阳职业技术学院招聘笔试真题参考答案详解.docx
- 2023四川化工职业技术学院招聘笔试真题及参考答案详解.docx
- 2023哈尔滨职业技术学院招聘笔试真题及参考答案详解.docx
- 2023商洛职业技术学院招聘笔试真题及答案详解1套.docx
- 2023呼伦贝尔职业技术学院招聘笔试真题参考答案详解.docx
- 2023南阳农业职业学院招聘笔试真题参考答案详解.docx
- 2023天津公安警官职业学院招聘笔试真题带答案详解.docx
- 2023年上海电机学院招聘笔试真题参考答案详解.docx
- 2023年四川艺术职业学院招聘笔试真题参考答案详解.docx
- 2023安徽体育运动职业技术学院招聘笔试真题及答案详解一套.docx
文档评论(0)