-
windows平台配置SSH
用户名有问题肯定登不进去!方法1. ssh远程使用jupyter notebook 在远程服务器上,启动jupyter notebooks服务:jupyter notebook --no-browser --port=8889 在本地终端中启动SSH:ssh -N -f -L localhost:8888:localhost:8889 username@serverIP其中: -N 告诉SSH没有命令要被远程执行; -f 告诉SSH在后台执行; -L 是指定port forwardin...…
-
常见排序
1. 冒泡排序(Bubble Sort)算法步骤: 从数组的第一个元素开始,比较相邻的两个元素。如果前一个元素大于后一个元素,则交换它们的位置。 对每一对相邻元素重复这个操作,从数组的开始到结尾。这一步骤会将最大的元素“冒泡”到数组的最后位置。 忽略已经排序好的部分(最后一个元素),重复以上步骤,直到整个数组有序。性能分析: 时间复杂度: 最佳情况:当数组已经有序时,只需进行一次遍历即可完成排序,时间复杂度为 $O(n)$。 平均情况和最坏情况:在平均情...…
-
常见搜索
1. 线性查找(Linear Search)算法步骤: 从数组的第一个元素开始,逐个比较目标值和当前元素的值。 如果找到与目标值相等的元素,则返回该元素的索引。 如果遍历了所有元素仍未找到,则返回-1表示未找到。性能分析: 时间复杂度: 最佳情况:目标值在数组的第一个元素,时间复杂度为 $O(1)$。 平均情况:目标值可能在任意位置,时间复杂度为 $O(n)$。 最坏情况:目标值在数组的最后一个元素或不存在,时间复杂度为 $O(n)$。 ...…
-
图灵机与BB
图灵机有两个主要参数,符号和状态。 判断数学命题的真伪问题可以转化成判断图灵机是否停机问题,但是不存在一个通用算法去判断图灵机是否会停机。 图灵也用图灵机证明了希尔伯特的“可判定问题中”提出那种算法是不存在的。证明了“万物皆图灵机”之后就好办了,希尔伯特的“可判定性问题”就变为, 是否存在一个算法,在有限步骤内,去判断任何一个图灵机在给定输入的情况下,运行后是否能停机。图灵证明了,这样的算法是不存在的。证明方法是大家熟悉的罗素悖论模式:假设有这种通用判别算法,叫它算法P。那么定义一...…
-
Ad-hoc NDN
Ad hoc在无线自组网中使用NDN架构时,需要一种信道接入机制,以便设备能够有效地进行数据传输和共享,帮助设备在资源有限的情况下进行公平的资源分配,以避免过度拥塞和冲突;提供关于信道质量和可用带宽的信息,从而帮助设备进行路由和转发决策;优化设备的功率管理策略,使设备能够在保证通信质量的同时尽量减少能量消耗;提高频谱的利用率,使得更多的设备能够同时进行通信。**NDN协议使用兴趣(Interest)和数据(Data)数据包来操作,并携带内容名称而不是源地址和目的地址。为了实现按名称进行报文...…
-
NDN研究(1)
传统互联网架构的问题TCP/IP体系结构通过分层协作系统地交换数据。目前来看,虽然TCP/IP这一体系结构给出了网络通信的常规通用标准,但其中信息在主机之间传只能通过IP寻址,使得基于“端口对端口”的通信方式的已逐渐暴露出其诸多缺点:如经典的TCP/IP体系结构。TCP/IP互联网只提供通信管道,只负责维护管道,不关心传输内容,也不是提供资源共享的好方法。存在的问题: 效率低:管道型网络是单源单路径的,很容易造成拥塞,比如每一个视频都,要从单个服务器来发送无数次。 可扩展性很差:IP地...…
-
python碎碎念
super().__init__()在Python中,super()函数用于调用父类(超类)的方法。super().__init__()这种用法尤其常见于类的构造函数中,即__init__()方法。这里是它的具体作用: 调用父类的构造函数:当你在一个子类中定义__init__()方法时,通常需要确保父类也被正确地初始化。使用super().__init__()可以确保父类的构造函数被调用,这样父类的所有属性和方法才能在子类中正常使用。 避免直接父类名的硬编码:使用s...…
-
深度包检测
一、名词介绍深度数据包检测技术(DPI)是一种互联网流量控制类技术,国内运营商和部分企业内网会使用它跟踪用户行为和监控网络流量(企业内网的应用可以参考深信服的内网监控系统)。DPI技术也被应用在了很多除监控和控制网络流量外的方面(如防御网络攻击等),不过与普通用户关系不大。二、深度包检测技术(DPI)的主要推广企业及国内的部署情况国外(主要指欧美)的主要推广者是思科,国内(中国大陆)的主要推广者是华为目前,国内运营商已经在流量、宽带、核心网全部完成了深度包检测技术的部署三、国内运营商对深度...…
-
D&E&H&B
位移场(电位移场)和电场是电磁学中描述电磁相互作用的两个基本概念,它们虽然紧密相关,但有着明确的区别和不同的物理意义。电场 (Electric Field)电场是由电荷产生的一个物理场,表示在空间的任何点上,一个单位正电荷会受到的力。电场 $\vec{E}$ 与电荷密度 $\rho$ 之间的关系由高斯定律(在真空中)描述:$\nabla \cdot \vec{E} = \frac{\rho}{\epsilon_0}$其中,$\epsilon_0$ 是真空的介电常数。电场可以通过电荷分布直接...…
-
设计模式-行为型模式
责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链并沿着这条链传递该请求,直到有一个对象处理它为止。**角色: 抽象处理者; 具体处理者; 客户端。使用场景:有多个对象可以处理一个请求,哪个对象处理由运行时决定;在不明确接收者的情况下,向多个对象中的一个提交一个请求。**优点 降低耦合度,一个对象无需知道是其它哪一个对象处理其请求。# 抽象的处理者class Handler(metaclass=ABCMeta): @abs...…
-
设计模式-外观&代理
外观为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层的接口,这个接口使得这一子系统更加容易使用。**角色: 外观类; 子系统类;**优点: 提高安全性 提高灵活性 减少相互依赖# 子系统类class CPU: def run(self): print('CPU start to run...') def stop(self): print('CPU stop to run...')# 子系统类class Disk: de...…
-
分治问题
分治算法一个问题是否适合使用分治解决,通常可以参考以下几个判断依据。 问题可以分解:原问题可以分解成规模更小、类似的子问题,以及能够以相同方式递归地进行划分。 子问题是独立的:子问题之间没有重叠,互不依赖,可以独立解决。 子问题的解可以合并:原问题的解通过合并子问题的解得来。显然,归并排序满足以上三个判断依据。 问题可以分解:递归地将数组(原问题)划分为两个子数组(子问题)。 子问题是独立的:每个子数组都可以独立地进行排序(子问题可以独立进行求解)。 子问题的解可以合并:两个有...…
-
设计模式-适配器&桥&组合
适配器模式适配器使得原本由于接口不兼容而不能一起工作的那些类可以一起工作,将一个类的接口转换成客户希望的另外一个接口。实现适配器的两种方式: 类适配器——多继承;# 类适配器模式使用示例:from abc import ABCMeta, abstractmethod# 目标接口class Payment(object, metaclass=ABCMeta): @abstractmethod def pay(self, money): passclass Alip...…
-
设计模式-建造者&单例模式
建造者模式建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。角色: 抽象创建者; 具体创建者; 指挥者; 产品。抽象工厂模式 - 着重于多个系列的产品对象;建造者模式 -着重分步构造一个复杂对象(控制顺序)。class Burger(): """ 主食类,价格名字 """ name="" price=0.0 def getPrice(self): return self.price ...…
-
设计模式-工厂模式
简单工厂模式**不直接向客户端暴露对象创建的细节,而是通过一个工厂类来负责创建产品类的实例。角色: 工厂角色; 抽象产品角色; 具体产品角色。**优点: 隐藏了对象创建的细节; 客户端不需要修改代码**缺点: 违反了单一职责原则; 添加新产品需要修改工厂类代码,违反开闭原则;工厂方法模式**简单工厂模式只创建一个工厂类,当有新的产品时,需要修改工厂类代码。而 工厂方法模式的’每个具体产品’ 对应 ‘一个具体的工厂类’,不需要修改工厂类代码,并且同时也能满足隐藏对象创建的细节。...…
-
面向对象
接口:接口是若干抽象方法的集合。接口的作用: 限制实现接口的类必须按照接口给定的调用方式实现这些方法; 对高层模块隐藏了类的内部实现。具有抽象方法的类就是接口类。面向对象设计原则:1. 开放封闭原则一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应该在不修改原代码的情况下进行修改。2. 里氏替换原则所有引用父类的地方必须能透明地使用其子类地方必须能透明地使用其子类的对象3. 依赖倒置原则高层模块不应该依赖底层模块,二者都应该依赖抽象。抽象不应该依赖细节,细节应该应该依...…