读书问题之《编程之美》 -----12061161 赵梓皓
我阅读的书是《编程之美》
刚开始的时候阅读序,就觉得控制cpu利用率这个问题很好玩,所以重点看了这部分和解决办法,问题也都大部分是这部分的。那么问题就来了(挖掘机技术xxx?中国山东找蓝翔)
咳咳,问题在下面:
1.关于问题的提出。(也是一点点建议)
本书的主要内容是告诉读者如何思考问题和解决问题。但是提出问题也是很重要的,正如爱因斯坦所说“提出一个问题往往比解决一个问题更重要”,很多面试题(比如井盖为啥是圆的)我觉得正常人很少会想到。所以,这个问题是怎么想出来的。。。我很好奇。也希望作者能够稍微讲讲。
2.书中第8页降到用gettickcount()来计算busy loop的循环时间。讲到能够统计的时间是49.7天。为什么最大值是49.7。这个数字有什么特殊含义。
百度后发现很多49.7天的相关问题。。比如西门子200强大的定时器最长可达49.7天!!
为啥也是49.7????
好像是32位数到49.7天会溢出。
计算一下
49.7天 = 4294080000毫秒
32位数的最大值= 4294967296
差不多 啊哈哈哈。。。。
然后在自己的电脑上试着用一下这个函数
代码:
#include <iostream>
#include <windows.h>
#include <WinBase.h>
#include <ctime>
using namespace std;
int main()
{
cout << GetTickCount() << endl;
system("pause");
}
结果: 大概3小时。。。合理
问题解决。
3.本书解法一中用sleep来解决cpu空闲时间。
那么,cpu到底在sleep的这段时间在干嘛?
而且,根据操作系统学的进程调度算法,有没有可能在执行这段程序的另一个时间片调度给了另一个进程。
我搜索了一下sleep cpu干什么。。。发现其实作者书中已经提到,但没有说清楚。
进入Sleep的是线程,不是CPU。
如果没有可用的用户进程了,就会执行 System Idle Process ,这个进程一般就是收集一些数据。
那这个进程到底是干吗的?它所干的事情会不会影响到我们要求的“cpu曲线”
百度百科:Windows页面内存管理进程,拥有0级优先;该程序使用Ctrl+Alt+Del打开,该进程作为单线程运行在每个处理器上,并在系统不处理其他线程的时候分派处理器的时间。它的cpu占用率越大表示可供分配的CPU资源越多,数字越小则表示CPU资源紧张。该进程是系统必须的,不能禁止。
实际上System Idle Process 是WIN2000/XP以及Vista/WIN7操作系统都有的一个进程,其作用都是一样的。就是在CPU空闲的时候,发出一个IDLE命令,使CPU挂起(暂时停止工作),可有效的降低CPU内核的温度,在操作系统服务里面,都没有禁止它的选项;默认它是占用除了当前应用程序所分配的处理器(CPU)百分比之外的所有占用率;
问题解决。
4.既然能够控制cpu的利用率,那能不能够控制内存的使用率。更进一步能不能控制网速的函数变成一个正弦曲线,或者能不能控制usb的速度变成一个特殊曲线。
解决这个问题需要很多专业知识。。。而且网上也搜不到,求大神解答。
5.这个问题是关于煎饼的问题(怎么写着写着有点饿了。。。。)。书中21页写到 可能使用动态规划的方法来解决。但是最后却给出了解决最优化问题普遍适用但效率可能是最差的递归方法。那为什么不是使用动态规划或贪心算法呢?
转自某人博客:
对于这个问题,某个子问题的最优解不一定是整体的最优解,所以我们在处理整个问题的时候,需要遍历所有可能的子问题,并计算它到整体问题所消耗的代价,才能最终作出有利于整体问题的选择。
所以我们一开始的假设,即烙饼问题有优化子结构的假设是错误的。因此我们不能用动态规划,同理也不能用贪心算法。
问题就先写这么多,我要去玩电梯了(说实话:是xxx的被电梯玩(┬_┬))
转载于:https://www.cnblogs.com/kjzxzzh/p/4027699.html
读书问题之《编程之美》 -----12061161 赵梓皓相关推荐
- 第二次阅读作业--12061161 赵梓皓
阅读笔记之No Silver Bullet 本文中,作者的观点是没有任何一项技术或方法可使软件工程的生产力在十年内提高十倍(1986) 作者列举的原因是 代码的完成分为两部分: 抽象(建模)和 代码实 ...
- SE Class's Individual Project--12061161 赵梓皓
1. 项目预计的用时 其实刚开始以为这个项目不难写,因为上学期oo课程上用java写过类似的程序(貌似还比这个复杂).觉得主要的难点在于学习c++语言. 总的项目被分为大概3个部分. 其一,文件遍历. ...
- 《编程之美》读书笔记19: 3.9 重建二叉树
<编程之美>读书笔记19: 3.9 重建二叉树 对根节点a以及先序遍历次序P和中序遍历次序I,查找a在I中的位置,将I分为两部分,左边部分的元素都在a的左子树上,右边的元素都在a的右子树上 ...
- 《编程之美》读书笔记08:2.9 Fibonacci序列
<编程之美>读书笔记08:2.9 Fibonacci序列 计算Fibonacci序列最直接的方法就是利用递推公式 F(n+2)=F(n+1)+F(n).而用通项公式来求解是错误的,用浮点数 ...
- 读书笔记:《编程之美》
<编程之美>读书笔记 我所阅读的<编程之美>是由<编程之美>小组所编写,由电子工业出版社出版,出版时间为2018年11月.此书的由来是有关于微软的面试,后来被用来教 ...
- 《编程之美》读书笔记(三):烙饼问题与搜索树
<编程之美>读书笔记三:烙饼问题与搜索树 薛笛 EMail:jxuedi#gmail.com 前面已经写了一些关于烙饼问题的简单分析,但因为那天太累有些意犹未尽,今天再充实一些内容那这个问 ...
- [读书笔记]编程之美(三)
[读书笔记]编程之美(三) 3.1字符串移位包含的问题 问题:给定两个字符串s1和s2,要求判定s2是否能够被s1做循环移位(rotate)得到的字符串包含.例如,给定s1=AABCD和s2=CDAA ...
- 编程之美 - 读书笔记 - 卖书折扣问题的贪心解法
<编程之美>读书笔记(四):卖书折扣问题的贪心解法 每 次看完<编程之美>中的问题,想要亲自演算一下或深入思考的时候,都觉得时间过得很快,动辄一两个小时,如果再把代码敲一遍的话 ...
- 《编程之美》读书笔记(四): 卖书折扣问题的贪心解法
<编程之美>读书笔记(四):卖书折扣问题的贪心解法 每次看完<编程之美>中的问题,想要亲自演算一下或深入思考的时候,都觉得时间过得很快,动辄一两个小时,如果再把代码敲一遍的话, ...
最新文章
- 人人都是 DBA(XII)查询信息收集脚本汇编
- php7不兼容phalcon_Phalcon7
- 为什么要关心均值和哈希码
- Spring 中的 LocalSessionFactoryBean和LocalContainerEntityManagerFactoryBean
- matlab样条插值如何用,三次样条插值matlab实现
- php 不申明构造函数,PHP的构造函数和同类名函数同时申明时调用的情况
- 独角兽导航带音乐带后台带客服
- Redhat 设置cntlm代理步骤
- C程序设计--指针(对 “ 数组 ” 进行输入输出操作)
- LFSR(线性反馈移位寄存器)
- 火狐 ajax提交失败,Firefox下AJAX0x80040111错误的解决方法
- ffmpeg 码率控制(总结篇)
- 史上最详细bitbucket入门手册,手把手操作指南
- 使用python程序抓取天眼查,企查查和爱企查上的企业基本信息
- 弦理论是如何解决量子力学和相对论间的矛盾
- 2019年安徽大学ACM/ICPC实验室新生赛(公开赛)
- 英雄联盟7月23日维修服务器,LOL7月23日更新维护结束时间 7月23日什么时候可以上线 LOL7月23日更新维护内容_蚕豆网新闻...
- apM Coin与Block72达成战略合作携手加速全球扩张
- 峨眉派的创始人真的是郭襄吗?
- 开源OA协同办公平台搭建教程:开源O2OA中log4j2使用配置