- 博客(48)
- 收藏
- 关注
原创 解决 Mac 端 VS Code “无法与 “...“ 建立连接:XHR failed.” 问题
把本地.ssh/known_hosts和known_hosts.old中关于远程的那条删掉就可以登陆了。
2024-01-12 15:23:09
866
原创 python路径问题
在一些目录下会出现__init__.py文件,当导入该目录作为包时,会首先执行__int__.py中的代码,在这里可以事先导入一些其他包。在代码执行时,执行的项目入口路径被添加到sys.path中;既可以使用绝对导入也可以使用相对导入方式,只能使用绝对导入的方式;
2023-09-07 16:38:45
78
原创 torchvision自带的transforms.to_tensor用法
【代码】torchvision自带的transforms.to_tensor用法。
2022-09-28 18:49:04
774
1
原创 C++列表初始化
假定有一个名为NoDefault的类,它有一个接受int的构造函数,但是没有默认构造函数。定义类C,C有一个NoDefault类型的成员,定义C的默认构造函数。【出题思路】因为NoDefault仅有的一个构造函数并不是默认构造函数,所以在类C中,不能使用无参数的默认构造函数,那样的话,类C的NoDefault成员无法正确初始化。【解答】我们需要为类C的构造函数提供一个默认的int值作为参数,满足题意的类定义及验证程序如下所示:对于非内置类型(无默认构造函数),不能直接直接初始化或者拷贝初始化(赋
2022-01-22 15:55:00
179
原创 PyTorch中tensor赋值运算符
t = torch.ones((3,3))t0 = tt1 = t.dataprint(id(t),id(t0),id(t1),id(t.data))运行结果:2132926456040 2132926456040 2133276319640 2132924110392t0与t完全相同。但是,t1与t.data地址不一样(t1.data与t0.data地址相同)
2021-11-18 23:05:00
1615
原创 a leaf Variable that requires grad is being used in an in-place operation
计算图中的叶子节点不能直接进行内置运算,防止影响计算图的反向传播运算。如果非要改变叶子节点data的值,可以直接对data属性调用内置运算,这样不会记录在计算图当中,或者使用detach()方法,因为返回的tensor共享data。...
2021-11-18 22:11:08
2050
原创 PyTorch中detach()方法和detach_方法区别
import torcht0 = torch.ones((10))t1 = t0.detach()print(id(t0),id(t1))print(id(t0.data) , id(t1.data))运行结果:1879016743744 18790167438081879016743936 1879016743936detach()方法是重新建一个tensort1,不过t1和t0的data和grad是共用的。t0 = torch.ones((10))t1 = t0.deta
2021-11-18 21:36:15
1444
原创 ale_interface/ale_c.dll OSError: [WinError 126] 找不到指定的模块。
如果在自己环境下能够搜索到ale_c.dll,那说明并不是缺少此dll文件。我是这样解决的:conda install -c conda-forge atari_py
2021-11-14 11:50:21
1047
原创 DQN和DoubleDQN的异同
DQN和DoubleDQN最大的不同在于:Q现实的计算方法。DQN的Q现实计算方法:直接将新的状态输入老的神经网络,返回最大的Q值DoubleDQN的Q现实计算方法为了防止overestimating利用了新的神经网络将新的状态输入新的神将网络,得到Q最大值的action,将此action作为旧的神经网络选择Q值的纵坐标。...
2021-10-27 11:22:24
1389
2
原创 强化学习Q-Learing算法
Epsilon greedy 是用在决策上的一种策略, 比如 epsilon = 0.9 时, 就说明有90% 的情况我会按照 Q 表的最优值选择行为, 10% 的时间使用随机选行为. alpha是学习率, 来决定这次的误差有多少是要被学习的, alpha是一个小于1 的数. gamma 是对未来 reward 的衰减值,r代表奖励。...
2021-10-19 14:03:04
182
原创 路径压缩并查集
#include<iostream>#include<algorithm>using namespace std;int utf[10000];int Find(int child){ int c = child; while(utf[c] != c) c = utf[c]; while(child !=c ){ int t = utf[child]; utf[child] = c; child = t; } return c;}void u
2020-10-15 00:10:10
72
原创 Dijkstra+DFS模板(PAT1030 Travel Plan (30分))
#include<iostream>#include<vector>#include<algorithm>using namespace std;const int INF = 10000000;int dis[501][501];int cost[501][501];int dest[501];bool visited[501] = {false};vector<int> paths[501];int N,M,S,T; void
2020-07-03 23:19:37
146
原创 Java中的clone简单探索总结,深拷贝与浅拷贝
package test;import java.util.Iterator;import java.util.Vector;class AA implements Cloneable{//如果不实现这个接口,即使覆盖了clone,编译无措,运行抛异常 int a; BB d = new BB(2021); AA(int a){ this.a = a; } @Override protected Object clone() throws CloneNotSupportedExce
2020-07-03 21:32:08
150
原创 C++类的对象成员不可以显式初始化[Error] expected identifier before string constant
#include<string>#include<iostream>using namespace std;class B{ public: B(int a){} B(){}};class A{ public: int i = 2020; const int ci = 2020; //基本数据类型可以 static int si; //初始化只能在类外 //static int si = 2021; //[Error] ISO C+
2020-07-03 21:05:45
6784
原创 C++字符串的输入和用getline输入遇到的问题
C++中的字符串读入我们通常是用 cin>>str; 它只要碰到空格或者换行符就意味着本字符串读取结束,且不会读取空格和换行符(相当于丢掉)。而getline函数读取一行,可以读入空格,遇到换行符结束(从输入流中丢掉该换行符)。但是,注意一点就是:如果只读入了一个换行符(敲了回车),这个换行符虽然不会被读入,但是它会被当作结束符,这个时候什么也没有读入。举例:#include<string>#include<iostream>using namespace st
2020-07-01 18:38:59
1131
原创 dijskra最短路径模板(结合优先队列)
struct node{ int from,to; int time; node(int a, int b, int c): from(a),to(b),time(c){ }};int N,M,SP,CMAX;vector<node> edge[501];int dist[501] = {0},bike[501];int path[501];bool visited[501] = {false};struct comp{bool operator() (const pai
2020-07-01 15:12:35
297
原创 整数划分问题和集合划分问题的区别
整数划分#include <iostream>using namespace std;int f(int n,int m){ if(n==0 || m==1) return 1; if(n<m) return f(n,n); else return f(n,m-1) + f(n-m,m);}int main(){ ios::sync_with_stdio(0); int num;
2020-06-30 22:15:18
367
原创 浅析C++强制类型转换运算符的重载,解释while输入流能够判断文件结束的原因
我们在C++中,读取文件时经常这样写假设文件中全是一系列整数int i;while(cin>>i){ ......}这个时候爱动脑筋的你不免有这样的疑惑,在标准C++中重载的>>右移运算符不是应该返回输入流的引用嘛,像下面这样:#include<iostream>using namespace std;class A{ public: int v1,v2; A(int x, int y):v1(x),v2(y){} operator
2020-06-16 22:23:47
190
原创 Java的上转型对象调用的非覆盖函数(非覆盖函数内部调用了覆盖函数)
package test;public class test_default_equals { int val; public static void main(String[] args) { // TODO Auto-generated method stub //A a = new A() String str1="zyh"; A a = new A(100); A b = new A(100); if(a.equals(b)) System.out.print
2020-06-15 21:53:16
132
原创 kruskal算法基于并查集的实现
#include<iostream>#include<algorithm>#include<set>#include<vector>using namespace std;/*并查集*/ struct UF{ UF * parent; UF():parent(NULL){ }};UF* find(UF* c){ if(c->parent == NULL) return c; set<UF*> s; w
2020-06-14 13:52:06
314
转载 基于类的并查集
/*===并查集===*/class Node {public: Node *parent; Node() : parent(NULL) {}};Node *find(Node *x) { Node *p = x; if (p->parent == NULL)return p; set<Node *> path; while (p->parent != NULL) { path.insert(p);
2020-06-13 21:17:06
103
原创 为什么非静态实名内部类不能有静态方法且静态域必须是final
首先,我们要先知道下面两点:非静态实名内部类可以访问所在外部类的非静态成员及方法;静态实名内部类不可以访问所在外部类的非静态成员及方法;非静态实名内部类依赖于外部类所创建的对象而存在,为什么非静态实名内部类不能有静态方法且静态域必须是final?原因就在于它能访问外部类的非静态成员和方法。这些非静态成员和方法是属于外部类的实例对象,既然非静态实名内部类有这么大的能耐,假如能够在它内部定义静态方法,那这些静态方法自然能够访问到外部类的非静态成员与方法,但是这些非静态成员与方法是属于外部类的实例对
2020-06-03 16:59:16
382
原创 Java覆盖机制探析,动态绑定机制探析
public class InheritTest { private int prvalue = 100; public int puvalue = 100; private void method1() { System.out.println("父类的私有方法"); } public void method2() { System.out.println("父类的公有方法"); } public static void main(String[] args) { // TO.
2020-05-21 15:10:17
105
原创 C++构造函数析构函数拷贝赋值构造函数拷贝赋值运算符样例分析
练习13.13:理解拷贝控制成员和构造函数的一个好方法是定义一个简单的类,为该类定义这些成员,每个成员都打印出自己的名字:struct X{X() { std::cout << “X()” << std::endl; }X( const X& ) { std::cout << “X( const X&)” << std::end...
2020-05-04 21:27:41
266
原创 差分数组总结
前缀和: 可以在常数时间内求出区段和,常用于为了提高算法效率做预处理,但是修改元素平均时间复杂度为线性的。差分数组: 可以在常数时间内修改一段一段区间的和,但是查询一段区间和的时间复杂度是线性的,要先做前缀和处理,在与原数组相加,得出若干变化后的数组。...
2020-05-04 16:08:46
283
原创 线段树以及树状数组模板( 智乃与无意义的题目 西北工业大学程序挑战赛)
线段树与树状数组是什么?线段树与树状数组都是用来解决数组的更新和区间查询问题,比如说一段数组a[n], 现在要求下标 [i,j] 区间的和,如果按照传统的遍历,则时间复杂度就是线性的,如果我们组织成树状结构,那么复杂度就可以降为log级别。相比较而言,线段树更好理解但代码量较大,树状数组代码量小但不好理解。 我总结了这两个模板,如果需要的话,直接使用这两个模板就可以,线段树我封装成了一个模...
2020-05-04 15:42:08
168
原创 树状数组精巧使用模板(快速更新,快速查找)
int n;int a[1005],c[1005]; //对应原数组和树状数组int lowbit(int x){ return x&(-x);}void updata(int i,int k){ //在i位置加上k while(i <= n){ c[i] += k; i += lowbit(i); }}...
2020-05-03 21:57:46
123
原创 快速幂通解以及矩阵快速幂通解
求一个数的n次方,如果是累计遍历,那么就是线性级别的复杂度,在这个过程实际上我们做了很多重复运算,比如求3^6 我们完全可以先求出来3^3 ,然后再对 3^3 平方得出解,这样我们就可以通过二分分治的方法将复杂度降到 log n。对于一个矩阵的n次幂同样如此,通过分治的方法,减少运算量。如果采用二分分治的方法,那么这是一个递归的方法,我们考虑能不能转化为非递归做法,这里用到了一些技巧,如下:...
2020-04-27 18:14:29
246
原创 2018蓝桥杯倍数问题C++快速解法
标题:倍数问题【题目描述】众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数。但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼。现在小葱给了你 n 个数,希望你从这 n 个数中找到三个数,使得这三个数的和是 K 的倍数,且这个和最大。数据保证一定有解。【输入格式】从标准输入读入数据。第一行包括 2 个正整数 n, K。第二行 n 个正整数,代表给定的 n 个...
2020-04-27 13:49:29
1494
4
原创 C++的map(映射对象为自定义数据类型)在使用[ ]时遇到的问题
struct node{ int x,y; node(int a, int b): x(a),y(b){ } node(): x(0),y(0){ }};map<int,node> s;映射对象为一个类,这时如果不写默认构造函数,那么在使用下标运算符时会编译报错,原因是map在不存在这样的键时,要自动创建此对象,如果没有默认构造函数,那么它不知道如何创建。**注意...
2020-04-25 11:23:56
644
原创 C++的const类型的引用问题
int ac = 10; int &ay = ac; const int &acy = ac; const int acc = 10; const int &acy1 = acy;//正确 int &acy2 = acc;//编译错误,被引用的类型是const,那么引用类型也必须是const上面的例子也解释了,在set或者map模板参数是自定义类...
2020-04-22 13:47:47
157
原创 c++集合等容器上的交,并,差运算
#include<iostream>#include<algorithm>#include<iterator> #include<set>#include<vector>using namespace std;int main(){ set<int> s1; for(int i=1; i<=5; ++...
2020-04-15 23:31:11
503
原创 C++的可调用对象分析(以sort的自定义比较操作举例来介绍)
C++的可调用对象:1. 函数名2. 函数指针3. 重载了括号"()"的对象4. lambda表达式接下来,以sort为例分别介绍这四种方法1.函数名bool cmp( const int& a,const int &b){ return a<b;}int main(){ int a[] = {1,2,7,3,4,-2,-3,5}; sort(a,a...
2020-04-02 23:58:53
168
原创 Java大数加减乘除仿照BigInteger
package big_num_operation;import java.math.BigInteger;public class Big_num { public byte[] mb_data; public String toString() { StringBuffer str = new StringBuffer(); if(mb_data[0]==1) ...
2020-03-29 19:36:34
168
原创 蓝桥杯方格分割新解
标题:方格分割6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。请提交该整数,不要填写任何多余的内容或说明文字。#include<iostream>using namespace st...
2020-03-26 21:10:04
385
原创 蓝桥杯剪邮票全排列加DFS
剪邮票如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。第一次看到这个题,以为是纯...
2020-03-22 19:46:17
326
原创 蓝桥杯方格填数 二维数组上的nextpermutation()问题
#include<iostream>#include<algorithm>#include<cmath>using namespace std;int a[3][4]={-2,0,1,2,3,4,5,6,7,8,9,-2};bool is(){ for(int i = 0;i<3;++i) for(int j =0;j<4;++j...
2020-03-22 13:03:46
351
原创 蓝桥杯跳蚱蜢dfs
#include<iostream>#include<string>#include<queue>#include<set>using namespace std;string end0 = "087654321";typedef struct state{ int level; string list0; int p0;}s...
2020-03-22 11:23:04
200
原创 Java中StringBuffer的方法equals问题
StringBuffer test1 = new StringBuffer("0");StringBuilder test2 = new StringBuilder("0"); if(test1.equals(test2)) System.out.println("as");此处运行结果并不会打印as,是因为String Buffer并没有子类的equals方法,此处的equals...
2020-03-21 18:20:19
360
原创 C++全排列next_permutation和is_permutation的使用
//#include <algorithm> #include<bits/stdc++.h>using namespace std;int main(){ int a[] = {9,5,7,8}; int b[] = {7,5,8,9}; ios::sync_with_stdio(0); do{ for(int i = 0; i<4; ++i) ...
2020-03-19 10:35:11
264
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人