- 博客(17)
- 收藏
- 关注
原创 安装GPU版tensorflow遇到错误:No module named '_pywrap_tensorflow_internal'
GPU版tensorflow安装后No module named '_pywrap_tensorflow_internal'配置好环境变量的情况下,请使用cuDNN 5.1,而不是cuDNN 6.0即可。
2017-07-09 16:16:15
4257
原创 python3中输出map的问题
def toUpper(item): return item.upper()upper_name = map(toUpper, ["hao", "chen", "coolshell"])print(upper_name)#print(list(upper_name))# 输出 ['HAO', 'CHEN', 'COOLSHELL']在python2中会输出: [‘HAO’, ‘CHE
2017-07-06 16:33:27
1873
原创 python 3.6X安装notebook后无法打开的解决办法
今天安装了python3.6.1,想再安装notebook,所有模块都正常地安装了。但是在输入“jupyter notebook"想打开notebook时出现错误: ModuleNotFoundError: No module named 'markupsafe._compat'网上查找了好多资料,有说回退到python3.5X版本就可以正常使用。可是我在家里的台式机上安装了3.6.
2017-06-04 10:16:03
6166
7
原创 尾递归的概念及作用
如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代码。 原理:当编译器检测到一个函数调用是尾递归的时候,它就覆盖当前的活动记录而不是在栈中去创建一
2017-04-10 11:14:07
1407
原创 Code::Blocks程序调试技巧
在开始学习编程的时候,编写的程序一般都比较短小,出了BUG通过逻辑定位或直接写cout输出到窗口里就足够了,往往用不到调试功能。但是在比较大的程序中,通过思考或写cout输出去定位BUG就比较困难和低效了。常用的IDE都带有调试工具,VisualStudio和Code::Blocks都带有调试工具,而且VS的调试公具更加强大,只是因为VS太大,占内存(VS2013安装后占2.8G的硬盘空间),相比之
2017-04-07 17:01:44
2011
原创 参加华为2017软件精英比赛的经历
最近参加了华为2017软件精英大赛,从3月初看到比赛信息开始构思解决方案,到4月初清明节前完成所有代码编写,然后开始调算法参数,再到4月5日初赛结束,一直忙碌了近一个月,要么是在敲代码,要么是在想怎么设计算法来更高效地搜索全局最优解,白天想,晚上想,睡前想,半夜起夜了,竟然也在想(笑cry)...虽然比较累,不过当今天确定自己进入了赛区前64强,拿到华为的面试绿卡之后,还是觉得自己的付出是值得的。
2017-04-07 15:36:12
3656
1
原创 判断一个double数是否为整数
const double EPS 1e-6;...double a;...if(a - (double)((int)a) < EPS)//则为整数or#include ...const double EPS 1e-6double a;...if(a - floor(a) < EPS)//则为整数
2017-03-13 21:05:00
10187
1
原创 输入两个链表,找出它们的第一个公共结点
问题:输入两个链表,找出它们的第一个公共结点。 分析:第一反应是蛮力法,这是没认真思考才想到的方法。仔细分析就会发现,这两个链表有着共同的尾部,在两个链表达到第一个公共结点后,之后每个结点都是相同的,拓扑形状呈现为Y型结构。 思路一:首先遍历两个链表,得到两个链表的长度,并得到两个链表的长度差。然后进行第二次遍历,首先在更长的哪一条链表上先走那个长度差的步数(可能长度差为零,一
2017-03-13 17:16:36
1322
原创 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路一:利用逻辑与——&& 的短路特点 “&&”有个短路特点,前面为假,后面不计算int Sum_Solution(int n){ int ans = n; ans && (ans += Sum_Solution(n - 1)); return ans;}思路二:利用求和公式——n * (n + 1) / 2 n *
2017-03-13 11:07:27
283
原创 查找的知识点总结
所谓查找(或搜索)指的是从数据文件中找出满足某些条件的记录,用来查找的条件称为“键值(key)”,就如同排序所用的键值一样。一次查找所用的时间很短,但当程序中需要大量使用查找操作的时候,查找的时间消耗效率就显得非常重要。 同排序一样,可根据数据量的大小将查找分为内部查找和外部查找。从另一个角度看,又可分为静态查找和动态查找,定义如下: 1、静态查找:查找的
2017-03-11 17:26:11
1082
原创 排序的知识点总结
排序(sorting)是指将一组数据,按特定规则(排序算法)调换位置,使数据有序(递增或递减)。 在排序过程中,数据的移动方式可分为“直接移动”和“逻辑移动”。“直接移动”使直接交换存储数据的物理位置,而“逻辑移动”并不会移动数据,仅改变指向这些数据的辅助指针的位置。一般大数据的排序不会使用直接移动,因为改变存储位置需要花费过多时间,相反改变其指针指向的位置则高效得多。
2017-03-11 09:41:42
1910
原创 关于动态规划问题
参考别人的两篇博客:http://blog.csdn.net/baidu_28312631/article/details/47426445
2017-03-10 17:09:51
355
原创 由斐波那契数列问题引出的问题
问题:输出斐波那契数列的第N项解法一:递归int Fibonacci(int n){ if(n <= 1) return n; return Fibonacci(n - 1) + Fibonacci(n - 2);} f(n) = f(n-1) + f(n-2),第一眼看就是递归啊,简直完美的递归环境,递归肯定很爽,关键代码两三行就搞定
2017-03-10 16:50:43
451
原创 AOV网络与AOE网络
网络图常被用于规划大型项目,常用的网络就如下: AOV网络(activity on vertex),用图的顶点来代替一项工作的网络,又称顶点活动网络。相关概念为其拓扑排序,排序的步骤如下: 1、寻找图中的任何一个没有先行顶点的顶点; 2、输出此顶点,并将此顶点的所有边删除; 3、重复以上两个步骤,直至输出了所有顶点; 注:如果同时有两个及以上顶点没有先行顶点,那么图
2017-03-09 20:22:10
4236
原创 最小生成树算法—Kruskal算法和Prim算法
Kruskal算法: 算法过程: 1、将各条边按照权值从大到小排列 2、从权值最低的边开始建立最小成本生成树,依次加入边,如果加入的边会造成回路则舍弃不用 3.递归重复步骤2,直到找出n-1条边为止(设图有n个结点,则最小生成树的边数应为n-1条),算法结束。得到的就是此图的最小生成树
2017-03-09 09:44:51
598
原创 动态绑定
动态绑定是指在执行期间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。程序运行过程中,把函数(或过程)调用与响应调用所需要的代码相结合的过程称为动态绑定。 函数调用与函数本身的关联,以及成员访问与变量内存地址间的关系,称为绑定。在计算机语言中有两种主要的绑定方式,静态绑定和动态绑定。静态绑定发生于数据结构和数据结构间,程序执行之前。静态绑定发生于编译期
2017-03-09 08:59:39
350
原创 有关树的知识点
0、二叉树可以为空树1、n0 = n2 + 1 二叉树中满足上式,其中n0表示度为0的即叶节点的个数,n2表示度为2的节点个数2、树转化为二叉树的步骤: (1) 将节点的所有兄弟节点用横线连接起来 (2) 除最左子节点的连接外,删掉每个节点所有与子节点间的连接 (3) 将树顺时针旋转45°,即得到二叉树 从二叉树还原树逆序执行上面步骤即可
2017-03-08 17:00:08
1019
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人