现在位置: 首页 > 算法
2015-02-27 06:21 工业·编程 ⁄ 共 921字 暂无评论
一本《算法导论》看了七年,这曾是我自豪的,也是我现在困惑的。 我花了那么多时间在算法,可是无论是上课或是工作,考研或是面试,都看不到它的价值。 要说学它没用,又似乎每次面试都比较顺利,为什么呢? 为什么学了那么久的算法,却从未感觉它给我带来什么实际的价值? 其实,我从来没有真正学会过算法。 且不说算法的博大精深,千变万化。即使一本《算法导论》,也只是学习了其中几章中的几个基础算法,离学会还差得远。 ...
阅读全文
  今天同事向我询问图片压缩的算法,我想起大概两三年前做过的一个项目。其中包含了尺寸和质量两种压缩算法,并且支持JPEG、bmp、PNG等格式。今天把这段逻辑贴出来,供大家参考。 尺寸压缩 bool CompressImagePixel(     const WCHAR* pszOriFilePath,     const WCHAR* pszDestFilePah,     UINT ulNewHeigth,     UINT ulN...
阅读全文
2014-04-04 06:17 工业·编程 ⁄ 共 6474字 暂无评论
文章目录 1 摘要 2 为什么需要OpenCL? 3 OpenCL架构 4 基于OpenCL的编程示例 5 总结 6 参考文献 1 摘要 由于晶体管功耗、物理性能的限制,CPU的发展受到了很大约束。 人们转而寻找其它方式来提高系统性能,如多核处理器,异构平台等。 开放式计算语言(OpenCL)的出现为当前大量存在的异构系统的并行计算提供了一个 标准。OpenCL通过一系列API的定义,提供硬件独立的编...
阅读全文
在过去,很多巧妙的计算机算法设计,改变了我们的计算技术。通过操作标准计算机中提供的中间运算符,可以产生很多的高效函数。这些函数导致了计算机程序的复杂性和多样性,这也是今天计算机时代快速发展的重要原因。如下所示,我们列举了一些算法,它们改变了我们的计算机使用。 哈弗曼编码 哈弗曼编码在无损数据压缩中广泛应用。为了找到一种最高效的二进制编码,哈弗曼在1951年提出了根据字符频率排序的二叉树这样的编码方法...
阅读全文
2013-12-30 21:28 工业·编程 ⁄ 共 1111字 暂无评论
CStringA CreateHex(int max)  {      CStringA precision;      precision.Format("%x",max);      int size = precision.GetLength();          int num_align = size%4;         // 按多少位对齐      if(num_align <=4)    ...
阅读全文
微博只允许发140 字,如果链接地址太长的话,那么发送的字数将大大减少。短链接的主要职责就是把原始链接很长的地址压缩成只有6 个字母的短链接地址,当我们点击这6 个字母的链接后,我们又可以跳转到原始链接地址。 开始以为短链接是按照某种算法把原始链接压缩为短链接,再根据算法从短链接反算成原始链接的。后来尝试了下压缩算法(gzip 压缩算法),发现对于url 这种字符串越是压缩,长度就越长。通过对压缩算法的一些了解...
阅读全文
你要不同的10个数。你可以设个数组存储已经产生的数。比如已经产生了第一个数5,你用rand()生成了又一个5时,比较一下以产生的数发现是5,就跳过,看下一个。总能产生10个不同的随机数。 算法就是,每生成一个数就与原来生成的数比较,如果有相等的就就重新生成一个数,这样就能保证10个数都不相等了。下面这个程序生成数的范围是0到100: #include <iostream> #include <stdlib.h>     &...
阅读全文
2013-07-13 19:45 工业·编程 ⁄ 共 1634字 暂无评论
计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。)   我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某 个递推公式推算出来的一系...
阅读全文
1、生成[-1,1]的随机数 float GetRand()  {      return 2 .0 * rand() / RAND_MAX - 1.0;  }      注意那个2.0不能写成2了,那样的话,你就真…… 2、生成low到up(low < up)之间的随机正整数 unsigned int GetRandomInteger(int low, int up)  {     unsigned int uiResult;       if (low > up)     { ...
阅读全文
2013-07-13 19:39 工业·编程 ⁄ 共 735字 暂无评论
#include <iostream> #include <cstring> using namespace std; int main() {     int   a[10][10];     int   b[10];     int   i,j,equ=0;     //以当前时间为随机数种子,这样子下面每次产生随机数‘rand()’都不一样,     //如果不用种子,则每次产生的随机数都在一个范围...
阅读全文