模拟总结
来源:互联网 发布:mac苹果电脑备份 编辑:程序博客网 时间:2024/05/16 19:33
已经两次模拟,有成功有不足,现在我就说说经历两次模拟后的总结和体会。小编我也是一个大一新生,要是有高人看到后不同意小编我的见解,欢迎指教一二。
首先承认不足,最近在c++的实践学习(就是累代码)上时间投入不足,可能有点想一口气吃成胖子,没事就在翻windows程序设计和c++程序设计,光搞理论了,忽略了实践,还是邓小平爷爷说得对,一切事物要从实际出发。还有就是心态了,今天的模拟心态九门就没把握好,光跟电灯搞战斗了,完全失去了竞赛的心态。唉,我还是年轻啊。
但我也有收获,通过这几天看书和模拟,感觉要写出好的程序要有两点重要因素:一是对题目的分析和对算法的推敲;二是如何设计框架 。首先是对题目的分析和算法的推敲就不在这里做过多的讨论了,那是需要累计的,而且现在算法还没学(我也是自学)。这次主要是来说说第二点-----建立框架,框架是什么,框架是你程序的雏形,是由伪代码写出的。框架在我看来包括程序框架和数学模型。程序框架是一个空框架,需要你想出哪个函数要完成什么,哪个部分解决什么问题。参见伪代码和向下求精。
我认为重点在于数学模型。数学模型就是通过信息发掘将问题数学化和数字化,提取有用信息。如果现在和我同届的同学说现在的题目还需要数学吗?那我就会答你不用,那数学模型不重要吗?不是的,是因为我们现在是初学者,做的题都简单。但是要去看看ACM试题和游戏编程,要在冗长的题目中找到对自己有帮助的那数学建模就是十分重要的。
举个例子:
Feli 的生日礼物
【问题描述】
Felicia 的生日是11月1日(和Kitty是同一天生的哦)。于是Feli请来Kitty一起过生日。Kitty带来了最新款的“Kitty猫”玩具准备送给 Feli,不过她说,这份礼物可不是白送的。Feli要帮她一个忙,才能够得到心仪已久的玩具。 Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100 *_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。 Feli听了大吃一惊。要知道,算出n!是一个无比艰巨的任务。Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20 时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。Feli想了想,立刻动手写了个程序算出了正确的答案。现在,请你也试试看!注意哦,AC的男生将会得到一个“Hello Kitty”计算器(可编程,CPU 1THz,Mem 1TMB),AC的女生将会得到一个仿真“Hello Kitty”宠物(善解人意,无须喂养,智商1101,附带写情书功能)。
【要求】
【数据输入】每行一个n,直到输入数据结束
【数据输出】对应输入的n,每行输出一个答案
【样例输入】
1101
【样例输出】
8
乍一看这道题,我们完全可能有被题目吓倒,但我们要是用建立数学模型的方法来分析一下这道题,其实挺简单的。
首先看我标黄的文字,我们会得到两个信息:一、普通思路是解决不了这道题的,因为long int存不下。二、她只要求个位数,也解释说是十位、百位等等不重要(除非个位是零,那我们就除以10,求出左后一个不为零的数)。那我们就不去管个位之前的数字了。那这道题就很容易了。
代码如下:
#include <iostream>using namespace std;int main(){ int number,i,chengji=1; cin>>number; for(i=1; i<=number; i++) { chengji=chengji*i; while(chengji%10==0) chengji=chengji/10; chengji=chengji%10; } cout<<chengji<<endl; return 0;}
运行结果:
如何提高建立数学模型的能力就是多做题,多思考吧。
这就是我脑中的建立数学模型,希望对亲们有些作用,也希望同学们提出不足,我好改正。
- 模拟总结
- C#模拟登录总结
- 模拟赛总结。
- 模拟电路 个人总结
- 总结GPIO模拟SPI
- jzojNOIP2014模拟 8.14总结
- 【NOI 2015模拟】总结
- Noip模拟总结
- OC模拟试题总结
- GDOI 3.21 模拟总结
- 4.22模拟总结
- 7.6 NOI模拟总结
- 7.7模拟总结
- 模拟退火总结
- 【GDOI】模拟8.1总结
- 【GDOI】模拟8.2总结
- 【GDOI】模拟8.3总结
- GDOI模拟8.6总结
- html5编码规范
- C 数字1、2、3、4用不全相等的数字组成的三位数及其个数
- (每日算法)Leetcode --- Maximal Rectangle(最大子矩阵)
- 研究方向的思考
- Vs2013在Linux开发中的应用(22):模块加载
- 模拟总结
- 一种采用 Win32 CreateWindow 方式的模态窗口
- 最速下降法/steepest descent,牛顿法/newton,共轭方向法/conjugate direction,共轭梯度法/conjugate gradient 及其他
- 阿里MQS与ONS对比
- 多态与索引
- LINUX/UNIX 线程同步技术之互斥量(1)
- linux驱动程序之基于输入子系统写驱动程序
- POJ-2956(优化枚举||BFS)
- VC下实现虚拟桌面的两种方案