自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qiaoXiong的技术博客

天堂有路你不走,学海无涯苦作舟

  • 博客(53)
  • 收藏
  • 关注

原创 【算法】最大堆之Python实现

class MaxHeap(object): def __init__(self, data=None): self._data = data if data else [] self._count = len(self._data) self._heapify() def __len__(self): return self._count def __repr__(self): return st

2021-02-07 23:00:46 196

原创 Python 可散列对象探究

可散列对象的定义(1)支持 hash() 函数,并且通过__hash__()方法得到的散列值是不变的(2)支持通过__eq__()方法检测相等性(3)若a==b为真,则hash(a)==hash(b)也为真Python 中的可散列对象和不可散列对象可散列对象Python 中不可变的对象是可以散列的如数值类型,字符串,元组和forzenset所有由用户自定义的对象都是可散列的,它们的散列值是由id()获取,并且都是不相等的。不可散列对象可变类型的对象是不可散列的,如列表、字典和集

2020-05-26 01:48:37 926

原创 Pytorch中的LSTM输入格式

之前写的代码,由于搞错了 LSTM 输入的格式,导致我写的代码虽然可以运行,但是运行的结果却是错误的,而且还很难发现。直到我查看了文档和官方的样例,才发现正确的输入方式是怎么样的。class torch.nn.LSTM(*args, **kwargs)参数列表input_size:x的特征维度 hidden_size:隐藏层的特征维度 num_layers:lstm隐层的层数,默认为1b...

2020-03-31 21:47:39 6285 2

原创 Python 爬虫,爬取历史天气数据

先上源码这次用的是BeautifulSoup,解析html,非常的便捷import datetimeimport pandas as pdimport reimport requestsimport timefrom bs4 import BeautifulSoupheaders = { 'User-Agent': 'Mozilla/5.0 (Win...

2019-12-19 11:18:23 2044 8

原创 几种 QoS 预测方法

0.问题描述$U = {u_1, u_2, …, u_m} $ 为用户集合$S = {s_1, s_2, …, s_n} $ 为服务集合则有 $m \times n $ 的矩阵 $V $ 表示服务的 QoS 信息,VijV_{ij}Vij​ 表示用户 uiu_iui​ 对服务 sjs_jsj​ 的评价。在现实环境下,这个矩阵中大部分的元素值都是未知的,因此需要对缺失的值进行预测。 1....

2019-11-22 15:29:28 2954 8

原创 【机器学习笔记】 SVM 里面的 SMO 算法

SVM 好难理解,之前看吴恩达的教程就一知半解的。现在学习了《机器学习实战》,实现了一下 SMO 算法简单版本的代码如下def smoSimple(dataMatIn, classLabels, C, tolerateVal, maxIter): """ 简化版 SMO 算法 :param dataMatIn: 数据集 :param classLabels: ...

2019-06-17 00:43:32 278

原创 【机器学习笔记】吴恩达公开课·第七章 Logistic 回归

假设陈述h(x) : estimated probability that y = 1 on input xhθ(x)=P(y=1 ∣ x;θ)=g(θTx)\large h_\theta(x) = P(y=1\,|\,x;\theta)= g(\theta^Tx)hθ​(x)=P(y=1∣x;θ)=g(θTx)sigmod 函数...

2019-04-19 01:47:12 194

原创 最长回文子串以及 Manacher 算法

正如孔乙己知道“回”字有四种写法这个问题也有四种解决的方法暴力法枚举这个字符串的所有子串,再判断是否为回文。时间复杂度为 O(n^3)此处不实现,太弱智了中心扩展法从字符串的每一个字符开始,以此为中心,向两侧扩展,直到不是回文为止。这种方法的时间复杂度是 O(n^2)。但是要考虑到许多特殊情况。如 bb,abbbb,bbbb 等偶数个的回文,所以逻辑上比较复杂。使用这种方法打...

2019-04-02 18:02:52 145

原创 求两个升序序列的中位数

1.等长序列题目来源于王道考研数据结构书一个长度为L(L≥1)的升序序列S,处在第 ⌈L/2 ⌉ 个位置的数称为S的中位数。例如,若序列S1=(11,13, 15,17, 19), 则S1 的中位数是15,两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2= (2, 4, 6, 8, 20), 则S1和S2的中位数是11。现在有两个等长升序序列A和B,试设计一个在时间和空间两方...

2019-03-27 16:19:07 5230 1

原创 二叉树后序遍历的非递归实现

void postOrder2 ( BTree t ) { BTree stack[100]; int top = -1; BTree pcur = t, plast = NULL; if ( !t ) { return; } while ( pcur ) { stack[++top] = pcur; ...

2019-03-27 01:29:19 550

原创 根据遍历序列重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。1)根据前序、中序遍历重建二叉树/** * Definition for binary tree * public class TreeNode { * ...

2019-03-11 08:52:45 607

原创 【数据结构复习】1.数组

这个系列是为了准备考研复试而把王道上的代码再拿出来敲一遍,用的是 C 语言,用的 IDE 是 VC 6.0,非常操蛋,唉, 那也得忍着啊。摆正自己的态度吧。1.数组的定义#define initSize 100typedef struct { Elemtype *data; int maxSize, length;} seqList2.数组的操作2.1 插入操作//...

2019-01-11 19:05:29 276

原创 网易Java开发2018届补招面试记录

一面1.二分查找及其递归实现 2.介绍oo出租车项目 3.Java容器,ConcurrentHashMap怎么实现线程安全 4.synchronized和lock的区别 5.有哪些线程池,线程池底层怎么实现 6.Tcp三次握手、四次挥手 7.Http的Post和get方法的区别 8.voliate关键字的作用和缺点 9.gc各种代的结构、怎么实现回收 10.Stringbui...

2018-05-04 21:12:06 255 4

原创 【算法-动态规划】求数组的最长上升子序列(LIS)的长度

《算法导论》上面对于动态规划的描述对于我来说有点晦涩难懂。于是在知乎上面看了一下关于这方面的知识,这个回答貌似还不错。 什么是动态规划?动态规划的意义是什么? - 徐凯强 Andy的回答 - 知乎 https://www.zhihu.com/question/23995189/answer/35324479这里提供了一个例题来解释动态规划的原理: 给定一个数列,长度为N, 求这个数列的...

2018-04-24 18:34:36 3325 3

原创 【算法】k-sum 问题

2sum问题 这道题在剑指 offer 上面有,具体的链接为https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b?tpId=13&tqId=11195&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interview...

2018-04-19 15:47:13 2795

原创 【算法】KMP算法的实现

这个算法主要的内容是next数组的实现,next数组的含义如下: next数组的含义就是一个固定字符串的最长前缀和最长后缀相同的长度。对于目标字符串ptr,ababaca,长度是7,所以next[0],next[1],next[2],next[3],next[4],next[5],next[6]分别计算的是 a,ab,aba,abab,ababa,ababac,ababaca的相同的最长前缀和最长

2018-04-03 22:04:59 154

原创 Python GUI练习

这是一个小型的信息管理系统(不是通过数据库实现的) 主要是在此过程中重温了Python GUI设计的一些函数,以供以后参考用import tkinterperson_list = []def ok_func(): name = name_entry.get() sex = sex_entry.get() age = age_entry.get() bl...

2016-12-24 11:35:41 770

原创 Django学习笔记

—恢复内容开始—1.源代码地址:https://github.com/qiao1406/BeijingSubway2.使用的语言:C++ 编程环境:Visual Studio 2015/Windows 8 64-bit 虚拟机(ps:自己的电脑上死活装不成功世界上最好的IDE,只好装在虚拟机上了3.PSP表格-计划时间与实际花费时间3.测试样例具体详见GitHub,这里贴几个帮助我改正了bug的样例

2016-10-17 22:34:35 546

原创 【算法】查找数组第i小的元素的算法

1.一个思路:怎么同时找出一个数组的最大值和最小值,越快越好?1.1 一种最普通的办法是设max = min = a[0],遍历一遍数组a,每个元素分别和max,min做比较,并对这两个值进行相应的更新,这样的话,比较次数为 2*(n-1)1.2 这次,把这个数组的元素分成每两个元素一对,先不考虑奇偶性,然后这两个数先进行比较,比出大小,然后大的再和max比较,小的再和min比较,则每两个...

2016-09-01 20:28:07 1461

原创 【算法】一些线性排序算法

一、计数排序使用这个算法有一个前提,待排序的数组a,其所有的元素分布在区间[0,k],该算法的时间复杂度为O(n+k),当k=O(n)时,运行时间为O(n),所以当k比较小的时候适合采用这个算法下面给出这个算法实现的代码#include using namespace std;void counting_sort ( int a[], int k, int len )

2016-08-30 20:22:26 509

转载 C/C++ 中的sizeof注意事项

转自w57w57w57的专栏原文链接:http://blog.csdn.net/w57w57w57/article/details/6626840摘要:、Sizeof的作用非常简单:求对象或者类型的大小。然而sizeof又非常复杂,它涉及到很多特殊情况,本篇把这些情况分门别类,总结出了sizeof的10个特性:(0)sizeof是运算符,不是

2016-08-30 20:15:26 2162

原创 【算法】快速排序——基于分治思想的实现

今天看了《算法导论》的快排部分,又更加理解了这个算法现在将它实现了,以后就直接用了#include using namespace std;// 这个函数的作用是将数组a从下标p到r这部分进行一个划分// 将a[r]放到合理的位置(下标q处),使得 任意 p<=i<q:a[i]<=a[q]// 任意 q = a[q]int partition ( int* a, in

2016-08-30 14:39:48 979

原创 【算法学习】最大子数组问题的分治法求解

最大子数组问题求解的是给定一个数组a[0...n-1],求出它的一个子数组使得其所有元素的和加起来最大如果使用暴力解法即枚举所有的子数组,则时间复杂度为O(n^2)采用分治法,对一段数组a[low.....high],求它的最大子数组,mid = (low+high)/ 2那么,a[low..high]的子数组有可能有三种分布的情况,假设子数组的上下届为i,j1)  在a的左部分,即  low &...

2016-08-28 08:53:57 905

原创 java-swing编程,实现计算器——支持四则运算

==== 2018年4月19日 17:56:20 更新 ===项目地址在:https://github.com/qiao1406/java_calcultor/tree/dev这两个星期学习了swing模块的一些内容,学习了java的GUI编程,自己动手写了一个计算器首先是整个计算器的图形框架类CalFrame类package Calculator;import java.awt.Border...

2016-08-27 21:33:51 6388 4

原创 [python爬虫]第二次的尝试:利用py爬虫来登陆知乎

这次按照的是 www.yiibai.com/python/python3-webbug-series4.html 的教程来写的,在原有代码的基础上稍微做了改动,体验了一把装逼的感觉,因为我测试用的知乎帐号是手机号注册的,所以代码上会有些出入#encoding utf-8__author__ = 'qiao'import gzipimport reimport http.cookie

2016-08-01 17:17:59 738

原创 在实现密码学算法的时候用到的一些自创函数以及数据结构

大二下学期写了好几个《密码学》的实验,在其中有自己创造了一些函数,也有一些是从书本上面看来的特此写一篇blog记录一下,日后要是还会用到这些东西,可以直接从这里拿,不用自己再重新写一遍了 用了一个叫做sage的语言包(其实应该说是python下的一个库吧,因为语法都和py是一致的,只是文件后缀是*.sage) 1.在实现AES算法中用到的有限域结构GF(2^8) F...

2016-07-30 23:04:29 756

原创 python爬虫第一次练习

python版本:python3.4第一次尝试使用爬虫,没有做什么高端的事情,就是简单的爬了一下百度用的也是python里面自带的 urllib库里面的东西,以及用了一个叫做deque的数据结构,有点像是队列,又有点不同代码import reimport urllib.requestimport urllibfrom collections import deque

2016-07-30 22:40:49 576

原创 【算法学习】POJ3070——利用分治法来计算Fibonacci数列的值

DescriptionIn the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequence are:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …An al...

2016-07-24 19:16:43 1666 1

原创 【算法学习】利用分治法计算x的n次幂

计算x^n,用普通的算法就是x乘n次的话,时间复杂度就是O(n) 利用分治法x ^ n = x^(n/2) *x(n/2) ( n是偶数)  = x^((n-1)/2)*x^((n-1)/2)*x (x是奇数) 这样的话 T(n) = O(1) if x = 1 =  T(n/2)+O(1)  (此处原来是2*T(n/2)+O(1) ,但是可以只计算一次)根据主定理...

2016-07-17 23:42:38 18940 6

原创 【算法学习】归并排序——基于分治思想

归并排序的核心就是分治,把大问题转换成小问题照着算法导论,敲了一段代码,调了一下,这是适合自己用的,以后再要用到归并排序就懒得自己再想了,直接用这里的C++版using namespace std;//这个函数是将两个已经排好序的数组转换成为一个数组// a[p...q]和a[q+1...r]void merge( int *a, int p, int q, int r ) { ...

2016-07-08 20:58:54 620

原创 Sublime Text3 的使用技巧

这个我一般拿来写python代码在linux环境下,用的是64bits的Ubuntu系统1.快速折叠函数 先按 Ctrl+K,再按Ctrl+1快速展开函数,先按Ctrl+K,再按Ctrl+J

2016-05-17 17:24:59 340

转载 如何创建不可变(Immutable)的Java类或对象

转自:http://my.oschina.net/jasonultimate/blog/166810不可变对象(immutable objects),后面文章我将使用immutable objects来代替不可变对象!那么什么是immutable objects?什么又是mutable Objects呢?immutable Objects就是那些一旦被创建,它们

2016-05-10 17:57:10 1589

原创 yacc和lex的林林总总

参考资料1:lex yacc 学习 :http://www.cnblogs.com/welkinwalker/archive/2012/04/09/2439065.html

2016-04-09 03:16:02 325

原创 一些教训,或者叫做收获

这段时间,OO作业,OS实验, 密码学实验三座大山压着我,我可能是头一回感受到了那么大的压力,然而从我怎么去应对这些东西的做法可以看出我在学习上面的很多问题。总而言之,这三个东西,最难的应该是OS-shell实验,然后是OO的多线程电梯调度,再是密码学实验,最后我的结果是OS-shell实验做得马马虎虎,提高要求没有完全实现(应该说只实现了一个),OO作业交了个无效作业,密码学实验完成了中等难

2016-04-09 03:07:01 352

原创 Ubuntu的一些使用小技巧【不断更新中】

1.怎么截屏答:按PrintScreen键可以截取当前屏幕下的所有内容(和Windows相同),如果要截取一部分屏幕的时候,可以同时按住shift + PrintScreen 这个时候鼠标会变成一个十字,用它可以选定一部分屏幕,从而完成截屏2.获取当前文件夹的路径答:Ctrl+L (和Windows相同)

2016-04-08 23:41:24 861

原创 Java并发与多线程(2) 生产者与消费者

老师的源码public class Producer extends Thread { private Tray tray; private int id; public Producer(Tray t, int id) { tray = t; this.id = id; } public voi

2016-04-01 02:09:10 417

原创 Java基本知识(1)static关键字

节选自《Thinking in Java》第四版通常来说,外界要调用一个类里面的方法,都要创建一个属于这个类的对象,使用new来创建对象时,数据存储空间才能被分配。如果希望即使不创建任何对象,也可以调用某个方法的话,那就要用到static关键字了当声明一个事物是static时,就意味着这个域或者方法不会与包含它的那个类的任何对象实例关联在一起。所以,即使从未创建某个类的任何对象

2016-03-30 18:36:06 406

原创 Eclipse技巧(不断更新中

1.怎么快速对一段代码全部缩进答:选中代码段按Tab2.怎么取消一段代码的缩进答:选中代码段按Shit+Tab

2016-03-28 23:51:50 347

原创 Java并发与多线程(1) 死锁是什么

节选自《Java完全参考手册》(第8版)需要避免的与多任务明确相关的特殊类型的错误是死锁——deadlock,当两个线程循环依赖一对同步对象时,会发生这种情况。例如,假设一个线程进入对象Y的监视器。如果X中的线程试图调用对象Y的任何同步方法,则会被堵塞。但是,如果对象Y中的线程也试图调用A的任何同步方法,那么会永远等待下去,因为为了进入X,必须释放对Y加的锁,这样第一个线程才能完成。死

2016-03-28 02:17:23 1114

原创 模重复平方计算法(快速幂)【Python实现】<信安数论>

《信息安全数学基础》 陈恭亮版 2.5Python算法实现def fast_mod(x, n, m): a = 1 b = x while True: temp = n if n % 2 == 1 : a = a * b % m

2016-01-27 17:36:03 4664 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除