自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Travor Philip的blog

CS新手,欢迎交流~

  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 ubuntu python版本

ubuntu18.04自带python3.6安装不同版本python:从官网下载源码编译安装apt install python3.7-minimal切换默认版本:update-alternatives是管理Linux软件版本的工具,标准格式--install link name path priorityinstall是注册服务。link是注册最终地址,把命令在这个固定的目的地址做真实命令的软链,以后管理就是管理这个软链服务名,命令行直接打开的服务。path被管理的软件的绝对路径。

2022-03-06 11:51:30 621

原创 缓存Bitmap

在 Android 中处理位图和其他图片相关的任务时, Glide 可以完成大部分复杂工作。如果要自己实现缓存Bitmap可以用以下方法。应用场景系统通过循环利用移出屏幕的子视图来限制ListView, GridView之类的视图对内存的占用。垃圾回收器假设程序不会保留任何长期的引用,因此也会释放已加载的位图。但是为了确保能够流畅地加载界面,必须避免每次子视图返回到屏幕上时都要处理图片。采用内存和磁盘缓存会让组件快速重新加载经过处理的图片。使用内存缓存使用内存缓存位图。LruCache 类非常适用

2022-02-23 20:33:20 386

原创 获取视图控件的方法findViewById、kotlin-android-extensions、ViewBinding

kotlin-android-extensions和ViewBindingfindViewById使用findViewById时,最终会调用ViewGroup中的findViewTraversal,这个方法会遍历所有的子View,形成一个递归查询,找到最末端(View中)。如果找到就会返回这个View并停止查询,如果没找到就会返回为null。在确定要查找的那个View在某个View中的时候,我们调用那个View.findViewById()方法,会减少查询的循环次数,提高效率。View类似于树的叶子节

2022-02-22 12:02:07 2349

原创 kotlinx.android.synthetic返回空对象

引入kotlin-android-extensions插件可以省去在代码中写view.findViewById的麻烦。但需要注意的是,kotlinx.android.synthetic工作的原理是getView().findViewById,所以如果当前位置getView的返回值不等于view,那用kotlinx.android.synthetic可能会返回一个空对象。getView的说明:Get the root view for the fragment’s layout (the one ret

2022-02-21 09:19:12 2245

原创 用Homebrew安装的东西都在哪

brew list [package_name]

2021-12-07 16:32:09 671

原创 VS code ssh连接远程服务器免密验证

如果以前生成过密钥可以直接用,不然就用ssh-keygen生成并选择路径保存:不管是Windows还是Mac都在 /Users/xxx/.ssh/目录下,xxx是你的用户名。找到isa.pub文件上传到服务器,内容复制到.ssh/authorized_keys。重启ssh服务。systemctl restart sshd...

2021-12-07 16:29:16 878

原创 python ModuleNotFoundError

1.在terminal运行时,import默认从以下路径寻找模块如果找不到或存在多个版本的模块就会报错ModuleNotFoundError。2.如果是在pycharm venv或conda等虚拟环境就需要检查虚拟环境中是否安装了模块。3.如果在pytharm中出现Unresolved reference: 设置项目为Source root并重启...

2021-11-29 10:17:48 145

原创 Java并发(2):重入锁、条件变量、synchronized

java并发同步ReentrantLock 锁条件变量同步如果多个线程都要对一个对象进行修改,那么最后的结果会取决于两个线程访问数据的顺序,这种情况称为竞态条件。为了避免多线程破坏数据,需要在编写代码时用到同步机制。ReentrantLock 锁下面是一个表示账户的类,演示了如何使用重入锁:import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class Ac

2021-11-22 22:40:56 581

原创 java并发(一):创建线程、线程状态、线程属性

Java线程runnable 创建线程继承thread创建线程调用thread或runnable的run方法线程状态新建可运行阻塞和等待终止线程线程属性中断线程守护线程线程名线程优先级runnable 创建线程在一个单独线程中运行一个任务需要三步:1.需要一个实现了Runnable接口的类,将这个任务需要执行的代码放到这个类的run方法中。public class multithread implements Runnable{ public static void main(String[

2021-11-21 18:25:37 493

原创 Java lambda表达式

lambda表达式是一个可传递的代码块,传递之后可以被执行多次。最简单的例子是排序时传入的定制比较器Comparator:class LenComparator implements Comparator<String>{ public int compare(String first, String second){ return first.length() - second.length(); }}...Arrays.sort(strings, new LenCompa

2021-11-20 17:55:38 415

原创 并发和并行,多任务和多线程

并发 concurrent同一时刻内有多个程序处于运行状态,在多道程序且只有一个CPU的情况下体现为在同一时刻只有一个程序在占用CPU,其他程序挂起。并行 parallel多个CPU分别执行不同的程序,互不影响。多任务 multitasking操作系统通过给不同的程序分配CPU时间片来实现“同时”执行多个程序。多线程 multithreaded多线程是对程序才有的概念,一个程序“同时”完成多个任务,每个任务交给一个线程。多进程进程拥有自己独立的数据,而一个进程下的线程共享数据,所以多线程风

2021-11-18 16:57:40 554

原创 Java随机数

import java.util.Random;class RandomTest{ public static void main(String[] args) { int bound = 10; Random random1 = new Random(); for (int i = 0; i < 10; i++) { System.out.println(random1.nextInt(bound)); } long seed1 = System.nanoTi.

2021-07-04 16:35:37 102

原创 计算机网络-运输层

计算机网络-运输层文章目录计算机网络-运输层概述多路复用和分解意义多路分解多路复用TCP和UDP的区别UDPUDP的优势使用UDP实现可靠数据传输UDP检验和概述运输层为运行在不同端系统上的应用进程之间提供了逻辑通信功能。(网络层提供端系统之间的通信功能)运输层分组称为报文段,有些标准也把UDP分组称为数据包,而把TCP分组称为报文段。多路复用和分解意义将网络层提供的端系统到端系统的通信扩展到为端系统上运行的应用程序提供进程之间的通信。一个进程有一个或多个套接字,运输层没有把数据直接给进程,

2021-06-28 19:09:00 152 1

原创 计算机网络-应用层(HTTP、I/O)

计算机网络文章目录计算机网络应用层应用程序体系结构进程套接字吞吐量TCP和UDP的区别SSLHTTPWeb页面URL报文格式请求回复状态码安全性SSL 安全套接字层对称加密非对称加密HTTP1.xcookiesessionHTTP2.0I/O模型阻塞式I/O非阻塞式I/O多路复用I/O信号驱动I/O异步I/O总结应用层应用程序体系结构客户-服务器体系结构(client- server)服务器性能和安全性需要大量投入对等结构(P2P)自扩展性,可靠性和安全性难以保障进程应用程序通过进程进行通

2021-06-28 10:23:52 230

原创 计算机网络-基础概念

计算机网络文章目录计算机网络基础概念协议分布式应用程序报文和分组排队和丢包协议模型和服务模型封装网络安全1 恶意软件攻击个人计算机2 攻击服务器和网络基础设施3 嗅探分组4 身份伪装应用层应用程序体系结构进程套接字吞吐量TCP和UDP的区别SSLHTTPWeb页面URL报文格式请求回复状态码安全性SSL 安全套接字层对称加密非对称加密HTTP1.xcookiesessionHTTP2.0基础概念协议协议规定了通信实体之间交换报文的格式和顺序,发送报文或接受报文等事件发生时的行为。分布式应用程序网

2021-06-24 10:14:11 104

原创 Java 单例模式

单例模式懒汉式 - 线程不安全class Singleton{ private static Singleton instance; private Singleton(){} public static Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; }}懒汉式(懒加载)调用时才初始化,避免不必要的加载,提高程序运行效率。以上代

2021-06-22 22:05:39 121

原创 POSIX是什么,为什么需要POSIX

POSIX是可移植操作系统接口(Portable Operating System Interface of UNIX)的缩写,POSIX标准定义了操作系统应该为应用程序提供的接口标准,是在各种UNIX操作系统上运行的软件的一系列API标准的总称。POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。POSIX 并不局限于 UNIX。许多其它的操作系统也支持POSIX,例如Wind

2021-04-28 22:30:57 4996

原创 pip安装package问题

1、下载失败,换国内源 (地址)pycharm可以加到repo里,但有时还是下载失败(可能是默认源的问题)用链接里手动指定源下载比较稳。2、pip版本或python版本与package不匹配。

2021-01-29 08:46:01 220

原创 剑指offer

03 数组中的重复数字pythonclass Solution: def findRepeatNumber(self, nums: List[int]) -> int: cnt_list = [0 for _ in range(len(nums))] for _ in nums: cnt_list[_] += 1 for _ in range(len(nums)): if cnt_list[_]

2021-01-09 10:51:51 102

原创 CSP和最小冲突算法

CSPCSP回溯算法流程如果变量都已完全赋值,返回。否则选择一个未赋值的变量 v。给 v 赋值。如果不冲突,寻找下一个未赋值变量。如果冲突,尝试 v 的另一种赋值。当 v 的所有可能取值都冲突时,回溯到 v 的前一个变量 u。给 u 重新赋值。优化在选择未赋值变量时:优先选择剩余值少的,也就是取值范围小的。在赋值时,优先选择约束少的,也就是对其他变量取值影响小的。提前预判,在调用下一层之前就知道下层调用有没有必要做(根据约束进行推论,inference函数)?Min-Con

2020-12-27 20:59:49 1457

原创 Java List遍历

import java.util.ArrayList;import java.util.List;public class forEach_Iterator { public static void main(String[] args) { List<Integer> integerList = new ArrayList<>(); integerList.add(1); integerList.add(2);

2020-11-20 12:06:38 298

原创 Python拷贝问题

Python拷贝问题直接赋值list1 = [[1,2,3], ['a','b','c']]list2 = list1获得整个对象的引用,对象改变引用也改变。浅拷贝list1 = [[1,2,3], ['a','b','c']]list2 = list1.copy()dict, list 都有copy()方法进行浅拷贝。浅拷贝后 list1 和 list2 是两个不同的对象,但这两个对象内部引用的子对象还是相同的。list1[0].append(4)# list2 -> [

2020-11-12 18:43:03 251

原创 查看和解除port占用

cmd 输入netstat -ano显示所有端口占用情况cmd 输入netstat -ano|findstr “8080”显示特定端口(8080)的占用情况,最后的数字是占用该端口的进程号(PID)解除占用cmd taskkill /f /t /im xxx.exe(进程名),需要先用tasklist | findstr “5004”,也就是找某个PID对应的进程。也可以在任务管理器的服务里找对应的PID来关闭服务。...

2020-11-06 15:07:12 364

原创 局部搜索 local search

局部搜索 local search不是系统的探索从初始状态开始的路径,考虑对某个或某些状态评价和修改适用于关注solution的状态,而不是路径的代价algorithm: simulated annealing模拟退火,genetic algorithm遗传通常不保留搜索路径内存占用小,在系统算法难以解决的大型的甚至无限的问题找到合理解状态空间地形图:横轴是状态空间,纵轴是启发式代价函数或目标函数。代价函数:找到最低点。目标函数:找到最高点。爬山法 hill-climbing以八皇后问题

2020-11-05 12:34:01 1876

原创 IMP,影响最大化问题

Influence Maximization ProblemsProblem DescriptionSocial network and influence spread社交网络可以被模型化为有向图G = V,E每个个体作为V中的结点每条边有一个[0, 1]的权重,代表被影响的可能性初始化一个子结点集S,称作seed set,作为影响扩散开始的群体随机扩散模型(stochastic diffusion model)描述了从S开始的随机扩散过程$ \sigma(S) $ 是预期被S影响的结点

2020-11-04 21:43:52 701

原创 GA遗传算法

2020-11-03 22:09:50 185

原创 matplotlib制图

import matplotlib.pyplot as pltimport numpy as npimport mathimport Bezierimport Line# example: 3D# points=np.array([# [1,3,0],# [1.5,1,0],# [4,2,0],# [4,3,4],# [2,3,11],# [5,5,9]# ])# example: 2D# points = np.arr.

2020-10-27 20:28:08 261

原创 多目标优化 multi-objective optimization problem(MOP)

目录:一、什么是多目标优化问题二、多目标问题的解三、相关算法一、multi-objective optimization problem(MOP)Multi-objective optimization problems deals with conflicting objectives, i.e. while one objective increases the other decreases. There is no a unique global solution but a set o

2020-10-04 22:38:31 3505 2

原创 MySQL shutdown unexpectedly或Mysql服务启动失败解决方法

CSDN上一些博客说的方法本文不再赘述(因为对我来说都没解决问题。。。。)下面给出三个方法mysql \ data 目录下的文件全部删掉(注意是文件,不是文件夹)任务管理器关闭所有名字含有MySQL的进程mysql \ data 目录下的 my.ini文件,找到 [mysqld] , 在线下面插入 innodb_force_recovery = 1。重启MySQL服务,关闭MySQL。把刚才加的那句话删了,再重启MySQL。...

2020-09-27 18:45:28 4595 3

原创 UML

User case diagramClass model diagramSequence diagramUser case diagramComponent:​ Actor: 外部用户(参与者),使用系统或与系统有接触。用简笔画人物和名称来表示。​ Use case: Actor想要系统做的事。用椭圆和名称来表示。​ System boundary: 系统边界是用来表示正在建模系统的边界。边界内表示系统的组成部分,边界外表示系统外部。用方框来表示,参与者在边界外面,用例在边界.

2020-09-19 00:30:42 165

原创 八数码问题是否有解

八数码问题描述: 3*3的棋盘有八个数字(1-8)和一个空位,数字可以滑动。问题研究的是从一个棋盘状态到另一个状态。是否有解的判定12345678对于上面的棋盘状态,我们可以表示为一个一维的序列 1,2,3,4,5,6,7,8,9,0 (空位表示为0) 。现在,对这个序列定义逆序,即在某个数字的前面比它大的数字个数。我们再来看滑动对逆序的影响:左右:逆序不变。上下:逆序加2或减2。也就是说,一个棋盘状态无论怎么滑动,它的逆序和的奇偶性是不会变的。

2020-09-09 23:27:28 2511 1

原创 可信存储器层次 Dependability

系统的两种服务状态可靠性的度量mean time to failure(MTTF)两次failure产生的时间间隔annual failure rate (AFR)= (一年)8760(小时) / MTTF(小时)mean time to repair (MTTR)两次正常工作时间之间的failure时间mean time between failure (MTBF)= MTTF + MTTRavailability = MTTF / (MTTF + MTTR)系统正常工作时间的占比提高a

2020-08-31 12:55:03 284

原创 单源最短路径

单源最短路径从给定源节点s到每个结点v的最短路径。最短路径的最优子结构最短路径算法依赖一个重要的性质,两个结点之间的最短路径包含其他最短路径,最短路径的子路径也是最短路径。负权重边如果图G包含从源节点s可以到达的权值为负的的环路,则最短路径权重定义不成立(总是可以找到权值更小的路径)。如果图G不包含那样的环路,那么即使有负权边也能计算最短路径权重。Dijkstra算法需要图所有边权都为正,Bellman-Ford算法不仅允许负权边,甚至可以侦测到存在的权重为负的环。松弛操作对于每个结点

2020-08-25 18:34:07 179

原创 不相交集合的数据结构和操作

什么是不????集合不相交集合维护了一个不相交动态集的集合,选用一个代表元素来标识每个集合,并不关心哪个元素作为代表(当然,还是有一定的选取规则)。动态集合支持的操作:Make-Set(x) 建立一个新的集合,它的成员唯一且仅出现在此集合中(因为不相交)。Union(x,y)将包含x和y的两个动态集合(不一定是单一成员集合)合并成一个新的集合,选取两个集合中的任意元素作为代表。Find-Set(x) 返回一个指针,这个指针指向包含x的集合的代表。(这个集合是唯一的)不相交集合的链表表示每个

2020-08-24 18:46:31 435

原创 最小生成树MST,prim和kruskal算法

最小生成树问题描述:给出一个连通无向图 G=(u,v)G=(u,v)G=(u,v)和边权重函数 w:E→Rw:E→Rw:E→R,希望找出它的最小生成树,即找出一个无环子集使得所有结点都被连接且边权之和最短。生成过程MST(G,w)initialize A with empty setwhile A doesn't form a MST find an edge (u,v) that is safe for A A = A union {(u,v)}return A其中A是某个最小生成树的

2020-08-23 19:51:24 382

原创 数据库系统的结构

数据库系统模式的概念type 型:对数据结构和属性的说明。value 值:型的具体赋值。schema 模式:数据库中所有数据的逻辑结构和特征的描述。仅仅涉及型的描述。instance 实例:模式的具体值。数据库系统三级模式结构外模式 external schema:子模式、用户模式,数据库用户能看见和使用的数据视图,和应用对接。数据库可以有多个外模式,不同外模式的数据和权限不同。模式 schema:所有用户的公共数据视图,数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境,和

2020-08-21 10:31:29 150

原创 存储结构和cache的基本原理

cache,高速缓冲存储器,位于CPU和主存储器之间DRAM,规模较小,速度较快,通常由SRAM构成。简单的cache基本原理:每次请求一个字,每个块也由一个单独的字组成。如果cache中没有要访问的数据导致缺失就从主存调入cache。cache:在cache中为主存中的每个字分配一个位置...

2020-08-20 16:15:32 1288

原创 存储器技术

SRAM只要给SRAM加电,其中的数值就能保存(简单集成电路),所以需要很小的功率。通常只有一个读写端口。读写访问时间可能不同,但SRAM对任何数据的访问时间是固定的。基本存储单元通常由6~8个晶体管组成(为了防止读写时的数据丢失)。DRAM通过在电容上保存电荷来存储数据,不能长久保持数据,必须周期性刷新。存储每一位只用一个晶体管,因此价格比SRAM低的多。闪存闪存是一种电可擦除的可编程的只读存储器(EEPROM)。对闪存的写操作会使存储位损耗。很多闪存用损耗均衡(wear l

2020-08-13 17:23:51 265

原创 数据库并发控制之封锁技术

所谓封锁就是事务在数据对象(表、记录等)操作之前,先向系统请求加锁。加锁后其他事务不能更新此数据对象,直到锁被释放。基本类型:排他锁 (exclusive locks):读写都????共享锁 (share locks):能读不能写...

2020-07-26 15:19:44 467

原创 IE浏览器打开中文HTML乱码

未在head中指定charset:Chrome正常显示,IE中文全部乱码指定<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>后:IE还是乱码原因:当IE右键不勾选自动选择编码的时候,IE是从解析页面标签优先再http header信息,而其他浏览器刚好相反。title里如果包含了中文字符,就会导致编码自动选择成gb2312导致页面乱码或者空白。解决:把meta信息放到title之前。另外发现,如果不.

2020-07-22 12:54:40 1401

DE-RRD_CIKM20.zip

DE-RRD_CIKM20.zip

2021-05-04

空空如也

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

TA关注的人

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