![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术
竞天问
自我感觉对技术挺有兴趣
展开
-
一次并行化实践——通过重写全局new&delete操作符
最近在做一个功能,计算量很大,需要把程序并行化以利用多核优势。刚开始是使用OpenMP,在我的机器上,4C8T的i7,CPU可以达到90%以上,在任务管理器的小图标里看着就跟把CPU占满了一样,所以我认为这个程序的并行化工作就算结束了,所以就把程序放到了一台48核的云主机上跑,结果发现CPU利用率最多只能到40%。看来是有什么地方产生了依赖。我首先想到的是线程中使用的omp critical语句的地方,这个是用来保护结果集的,就是所有线程都往一个结果集里写入数据,那这个肯定是需要保护的。所以第一次尝原创 2020-07-14 15:28:40 · 516 阅读 · 0 评论 -
N进制数字及“移码”应用
题目及初始解答来自于《Microsoft SQL Server 2008技术内幕:T-SQL查询》的附录A。原题目:最少的秤砣数量为了用秤称出从1到100磅之间任意整数的重量,最少需要多少个秤砣?此外,你能把解决方案推广到1到n的范围吗?解答:参见http://download.csdn.net/detail/jingtianwen/4445263这个解答,先是只允许秤砣放在一侧,原创 2012-07-23 09:56:47 · 1168 阅读 · 0 评论 -
一个递推关系的解答
题目:所有N位二进制序列中有多少个序列包含两个连续的‘1’?解题过程:(注:其中有一个错误过程,是为了记录自己的错误思路,给自己看的,希望不要混淆读者)由于前两天刚看过一个类似的题目的求解过程,立即便想到了通过在N-1序列的基础上添加一位二进制位的方式来推知答案。设N位序列中包含两个连续‘1’的序列个数为M[N](N>=2)。把N-1位的所有序列分为两部分:1、包含两个连续的‘1’原创 2012-08-08 15:57:10 · 930 阅读 · 1 评论 -
C++0x(C++11)中对多线程的支持
C++的新标准将会用一个新的库来支持多线程。下面我们来学习如何使用新库来简化代码,减少API和语法的使用。作者:Anthony Williams http://www.devx.com/SpecialReports/Article/38883译者:竞天问(这是我第一次翻译文章,也是一次心血来潮,因为我的英语基本功非常的差,之前根本没有想过我还会翻译东西。如果这篇文章有任何地方对您造翻译 2012-09-12 21:01:56 · 1788 阅读 · 0 评论 -
全排列
思想来自于《离散数学及其应用》,我只是结合自己的经历,再复述一遍,稍加改进。先来个插叙,我刚开始学编程时我就想过要写这样一个列出一个序列的全排列的程序。当年,经过了“千辛万苦”,终于完成了功能,很高兴。但过了这些年之后,再看当年的程序,惨不忍睹啊!不通用,效率低,可维护性差……我就想了,当年我这么二啊!当然,有这样的感觉说明我进步了,谁没有二过?下面回归正题,说一下现学的我将要现卖的方...原创 2012-07-21 12:29:34 · 1647 阅读 · 1 评论 -
SuperKeyboard.ahk
使用AutoHotkey实现的工具,可以让双手不离开主键区而完成所有的工作。由于CapsLock的使用频率较低且离手很近,所以使用CapsLock来作为模式切换键。现在如果要切换大小写,需要快速连按两次CapsLock键。原创 2017-08-29 15:11:35 · 698 阅读 · 0 评论