读书问题之《编程之美》 -----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 ...
- 编程之美 - 读书笔记 - 卖书折扣问题的贪心解法
<编程之美>读书笔记(四):卖书折扣问题的贪心解法 每 次看完<编程之美>中的问题,想要亲自演算一下或深入思考的时候,都觉得时间过得很快,动辄一两个小时,如果再把代码敲一遍的话 ...
- 《编程之美》读书笔记(四): 卖书折扣问题的贪心解法
<编程之美>读书笔记(四):卖书折扣问题的贪心解法 每次看完<编程之美>中的问题,想要亲自演算一下或深入思考的时候,都觉得时间过得很快,动辄一两个小时,如果再把代码敲一遍的话, ...
最新文章
- 如何采集Nginx的日志?
- spring security自定义指南
- netcat nc端口监听 反向连接中断问题
- C++中多态与虚函数的学习例子
- 最新增值税商品税目编码表_大家好!我叫增值税!这是我的最新最全税率表
- 终于明白了 C# 中 Task.Yield 的用途
- scrapy没有运行结果_关于Scrapy爬虫项目运行和调试的小技巧(下篇)
- 轻松的java,轻松进行Java Portlets
- 4a怎么打开sqlserver_百元级别荣耀路由X3和小米路由4A,哪款真的香?
- 第十五:Pytest-html报告修改与汉化
- 阿里云云中沙箱自助实验-从Gitlab数据库被删看数据备份的重要性!
- 电子教室软件 android,【转载】退出极域学生端电子教室教程9种方法
- 小程序消息提示框标题字数限制
- 【Swagger】 SrpingBoot整合Swagger
- java中怎么计算一个方法执行时,耗费多少毫秒
- Android 下拉刷新框架实现
- 云服务器接口文档 华为云,和云服务器对接的接口
- 基带信号、载波信号和宽带信号
- 激活函数(sigmoid和ReLU)
- d196g服务器无响应,幻影路由器D196G手机怎么设置? | 192路由网