自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 ubuntu 设置最大带宽

注意,ExecStart和ExecStop这两个命令用到了刚刚安装的wondershaper,如果你的wondershaper不是安装在。在网上搜索了一阵子,结合自己实操的经验,潦草写下这篇文章,供自己与有需要的人参考。wondershaper 是一个用来管理带宽的工具,使用它可以快速地设置一台机子上某个网口的上行和下行最大带宽。安装完成后可以运行一下,测试本机当前的网速,测速过程有些慢,可能需要两三分钟。查看该服务的启动情况,以下是我的结果,说明启动成功了。即可看到本机的网口,从中选择你要设置的网口。

2023-11-09 21:00:53 1016

原创 理解以太坊签名算法——ECDSA

ECDSA 算法的介绍及其在以太坊中的应用

2023-04-20 09:24:06 2101

原创 matplotlib 画图总结

【代码】matplotlib画图总结

2022-07-21 21:32:15 524

原创 INFOCOM2022——brokerChain

简介这篇论文讨论了区块链的状态分片的设计。针对Monoxide等分片方案存在的问题——单点过热,论文提出了brokerChain,一方面通过图的分割算法分割账户,促进分片的负载均衡;另一方面通过broker账户的设计改造了跨分片事务,缩短了事务的验证延迟。brokerChain适用于基于账户的区块链,如以太坊。系统设计系统将事务的处理分成一个个周期(epoch),上图展示了一个周期内进行的活动。节点在每个周期开头完成PoW,然后根据哈希值的最后几个比特决定划分到哪个分片。分片分为M分片和P分片

2022-02-24 11:49:56 1289 1

原创 PBFT为什么需要三个阶段

写在开头最近在看分布式共识领域的经典算法——PBFT的原论文,对其中三个阶段的设计原因不甚了然,在查阅了许多资料以及讨论之后终于对其有比较清晰的认识,所以将其整体为这篇文章,希望能对读者有所帮助。PBFT的三阶段共识这篇文章假设读者已经看过PBFT原论文或者其他介绍PBFT的文章,对完整的共识过程不再赘述,只放一张图以供快速回顾。当然除了三阶段共识过程,日志和检查点等内容也需要了解。为什么需要三个阶段要讨论这个问题,我们需要先看看视图切换的一些细节。视图切换视图切换用来解决主节点失效的问题。

2021-11-16 18:07:17 1673 1

原创 一维装箱问题

Bin Packing Problem一、 问题描述二、 算法介绍及实现注:(1)以下的文字表达中,桶 == 箱子, 空间 == 容量;(2)每个算法对应的程序默认读取所有测试文件并计算结果与耗时;(一) 直接法按照给定物品的顺序,判断当前桶能否装下当前物品,如果不能,则新开一个桶并将物品放入该桶中,接着便从该桶开始判断能否装下下一个物品(不再回头看前面的桶)。这个算法是最简单也是最快的方法,但基本上对问题没有什么优化,效果不佳。时间复杂度:O(n)代码实现://算法一 #in

2021-02-17 17:19:14 5691 3

原创 中国象棋AI实现——alpha-beta剪枝

中国象棋AI实现——alpha-beta剪枝一、简介这是基于alpha-bata剪枝算法实现的一个中国象棋博弈程序,可以实现人机交互,AI具有初级的智能,可以应对一般的象棋新手。界面用最基本的html+css+js实现,参考自中国象棋界面素材AI逻辑同样用js实现,项目地址。二、算法实现在让AI自动做出落子决定前,必须提供一个方法让其判断哪种走法较优,也即需要一个局面评估函数,能够返回一个表示局面好坏的分数,对于AI方,这个分数越大越好。//有一点需要强调:alpha-beta剪枝过程中走

2021-01-23 19:46:01 8837 7

原创 unity实现AI对战坦克

unity实现AI对战坦克游戏要求使用“感知-思考-行为”模型,建模 AI 坦克场景中要放置一些障碍阻挡对手视线坦克需要放置一个矩阵包围盒触发器,以保证 AI 坦克能使用射线探测对手方位AI 坦克必须在有目标条件下使用导航,并能绕过障碍。(失去目标时策略自己思考)实现人机对战具体实现参考师兄的博客https://blog.csdn.net/Jenny_Shirunhao/article/details/103337423,Bake生成导航网格图之前的步骤就不赘述了,烘焙效果如下:为A

2021-01-05 19:43:20 679

原创 cesium.js三维城市建筑物巡视开发

cesium.js三维城市建筑物巡视开发一、简介这个项目基于cesium.js和已有模型,在地图上搭建起了一座完整的建筑物,并实现了初步的用户交互,可以查看单独每一层楼内的线路结构。项目链接https://gitee.com/hiMyon/city3d/tree/master二、实现过程首先参照项目链接中的readme安装nodejs和http-server,搭建环境,然后进入下一步。(一)加载cesium.js视图var viewer = new Cesium.Viewer('cesiumC

2021-01-01 22:54:17 1289

原创 docker实践

docker 实践一、准备docker环境参考https://www.cnblogs.com/walker-lin/p/11214127.html(1)切换到root(2)apt-get update(3)允许apt通过https使用repository安装软件包apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties

2020-12-27 14:21:40 978

原创 golang 实现一个博客的后端服务器

golang实现一个博客的后端服务器一、简介这篇文章写的是一个简单博客后端的实现过程,完整代码在github上。我在这次项目中负责的部分是利用swagger editor生成api文档服务端部署完成user和article的全部功能二、安装mongodb、gin、mgoubuntu mongodb安装和使用https://www.cnblogs.com/weihu/p/8570083.htmlmongo service 的开启和关闭开启 sudo service mongodb s

2020-12-20 21:27:48 1205

原创 UGUI 实现Inventory背包系统

UGUI 实现Inventory背包系统一、效果展示二、实现过程大致实现过程参考自师兄的博客https://blog.kinpzz.com/2016/05/21/unity3d-ugui-Inventory/,其中加入了自己的不少修改,包括项目结构和具体的实现逻辑。界面主要分为两部分,第一部分是UI,包括右侧背包栏和左侧装备栏,用单独一个相机渲染,且该相机只负责UI层的渲染;第二部分是背景和人物,用另一个相机渲染,该相机渲染除了UI层外的其他层。这样就不会出现两个相机相互遮挡的情况了。首先实现

2020-12-11 12:46:02 355

原创 unity 粒子系统

unity粒子系统暂时还没有内容哦。

2020-12-02 21:23:47 1005

原创 golang 开发 web 服务程序

golang 开发 web 服务程序一、概述开发简单 web 服务程序 cloudgo,了解 web 服务器工作原理。任务目标熟悉 go 服务器工作原理基于现有 web 库,编写一个简单 web 应用类似 cloudgo。使用 curl 工具访问 web 程序对 web 执行压力测试任务要求基本要求编程 web 服务程序 类似 cloudgo 应用。支持静态文件服务支持简单 js 访问提交表单,并输出一个表格(必须使用模板)使用 curl 测试,将测试结果写入 README

2020-11-22 16:07:41 1308

原创 unity 智能巡逻兵

unity 智能巡逻兵 一、游戏要求游戏设计要求:创建一个地图和若干巡逻兵(使用动画);每个巡逻兵走一个3~5个边的凸多边型,位置数据是相对地址。即每次确定下一个目标位置,用自己当前位置为原点计算;巡逻兵碰撞到障碍物,则会自动选下一个点为目标;巡逻兵在设定范围内感知到玩家,会自动追击玩家;失去玩家目标后,继续巡逻;计分:玩家每次甩掉一个巡逻兵计一分,与巡逻兵碰撞游戏结束;程序设计要求:必须使用订阅与发布模式传消息subject:OnLostGoalPublisher: ?

2020-11-18 20:34:34 674

原创 修改、改进 RxGo 包

修改、改进RxGo包一、简介ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,Rx库支持.NET、JavaScript和C++,Rx近几年越来越流行了,现在已经支持几乎全部的流行编程语言了,Rx的大部分语言库由ReactiveX这个组织负责维护,比较流行的有RxJava/RxJS/Rx.NET

2020-11-09 20:22:15 479 1

原创 unity 简易游戏打飞碟V2

unity 简易游戏打飞碟V2一、简介在上一个游戏简易打飞碟的基础上,根据Adapter模式对场景控制器调用的接口作了如下图修改:保留CCActionManager的同时增加了PhysicActionManager,它们实现了同一个接口IActionManager,分别表示运动学运动(不考虑刚体)与物理运动(考虑刚体)。接下来对增加或作了修改的代码进行介绍。二、代码1. PhysicFlyAction与CCFlyAction同样继承自SSAction,不过现在只需要一个水平方向的初速度,垂直

2020-11-01 13:49:56 252

转载 mac 安装vmware tools

mac 安装vmware tools参考文章 https://jingyan.baidu.com/article/ad310e80b5798e1849f49ec7.html有人说vmware自带的darwin.iso不太好用,可以自己在网上下载其他的版本。

2020-10-28 22:19:48 506

原创 go程序包开发,复杂命令行支持

go程序包开发,复杂命令行支持命令行实用程序并不是都象 cat、more、grep 是简单命令。go 项目管理程序,类似 java 项目管理 maven、Nodejs 项目管理程序 npm、git 命令行客户端、 docker 与 kubernetes 容器管理工具等等都是采用了较复杂的命令行。即一个实用程序同时支持多个子命令,每个子命令有各自独立的参数,命令之间可能存在共享的代码或逻辑,同时随着产品的发展,这些命令可能发生功能变化、添加新命令等。因此,符合 OCP 原则 的设计是至关重要的编程需求。

2020-10-24 16:24:46 603

原创 unity 实现简易打飞碟游戏

unity 实现简易打飞碟游戏一、简介游戏共有5个回合,每个回合中会有随机产生的飞碟飞过屏幕,玩家需要做的事情就是用鼠标尽量快和多地点击飞碟。每个飞碟对应一定的分数,目前的设置是:【红色飞碟 3分】、【绿色飞碟 2分】、【蓝色飞碟 1分】游戏的目的是在规定回合内得到尽可能高的分数。二、实现效果三、代码框架四、具体实现五、项目地址六、可改进的地方寻找合适的飞碟或飞盘贴图,增加自旋效果给飞碟加上更复杂的轨迹,比如上下左右起伏增加击中飞碟时的画面效果,比如飞碟破碎或爆炸...

2020-10-20 19:12:07 460

原创 go 程序包开发,读简单配置文件 v1

go 程序包开发,读简单配置文件 v1一、作业要求https://pmlpml.gitee.io/service-computing/post/ex-pkg-ini/二、具体实现watch函数需要实现两个功能,分别是读ini配置文件和监听文件在这一过程中是否发生变化。接下来分别讲如何实现这两个功能。(一)Read读配置文件https://ini.unknwon.io/docs/intro/getting_started介绍了解析ini文件的一个范例,我们的目的是实现其一部分功能,分别是获取段落的

2020-10-19 21:38:08 274

原创 牧师与魔鬼动作分离版

牧师与魔鬼动作分离版一、简介这篇博客继承自牧师与魔鬼,在该游戏原有代码的基础上,实现动作及动作管理器与其他部分的分离。二、代码框架结构变化删除原来控制物体移动的move和moveController,替代为以下部分另外增加一名裁判,以及对场记FirstController作修改(修改后依然只需要将FirstController脚本挂载到空对象上即可运行游戏)。它们的关系如下:三、代码解释接下来对新增或修改的部分代码进行解释。首先是Actions(动作)部分1. SSAction &a

2020-10-08 23:29:37 247

原创 CLI 命令行实用程序开发基础

CLI 命令行实用程序开发基础一、简介命令行界面(英语:command-line interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面

2020-10-07 12:12:35 1512

原创 cesium本地环境搭建

cesium本地环境搭建一、简介CesiumJS is an open source JavaScript library for creating world-class 3D globes and maps with the best possible performance, precision, visual quality, and ease of use. Developers across industries, from aerospace to smart cities to dro

2020-10-04 20:05:46 1331

原创 空间与运动——练习

空间与运动——练习 一、简答题游戏对象运动的本质是什么?请用三种以上方法,实现物体的抛物线运动。(如,修改Transfrom属性,使用向量Vector3的方法…)写一个程序,实现一个完整的太阳系,其他星球围绕太阳的转速必须不一样,且不在一个法平面上。二、编程实践阅读以下游戏脚本Priests and DevilsPriests and Devils is a puzzle game in which you will help the Priests and Devils to .

2020-09-28 23:03:46 140

原创 unity 实现游戏——牧师与魔鬼

unity 实现游戏——牧师与魔鬼一、游戏介绍Priests and DevilsPriests and Devils is a puzzle game in which you will help the Priests and Devils to cross the river within the time limit. There are 3 priests and 3 devils at one side of the river. They all want to get to the

2020-09-28 23:01:04 681

原创 Go语言 以TDD思想实现快排

Go语言 以TDD思想实现快排一、什么是TDDTDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。——百度百科在Go语言的工作环境中,TDD可以简单理解为:对于某个要实现某种功能的函数或库,我们在实

2020-09-24 09:00:33 278

原创 离散仿真基础——练习

作业内容一、简答题解释游戏对象(GameObjects)和资源(Assets)的区别与联系。区别游戏对象:对象是具有一定属性与功能的事物的实体化。游戏对象就是在游戏过程中承担一部分职能并携带一定属性的组件,例如游戏角色、怪物、BOSS、地形等等。资源:资源即素材,可以在不同地方重复使用。游戏对象与资源的关系类似于对象实例与类的关系资源是对象的模板,从一个资源可以方便地创建任意多个具有相同属性的对象。对资源的修改会影响所有对应的对象一个对象一旦与某个资源绑定,或者由该资源被创建,则对资

2020-09-23 11:08:54 170

原创 unity实现井字棋

unity实现井字棋一、简介井字棋是一个很古老很简单的游戏,两名玩家在一个3X3的网格上画上自己的图标,每回合玩家只能选择一个格子,率先将三个自己图标连成一条直线的玩家获胜(如果在九个格子都被填充后仍没有获胜者,则判为平局。本游戏用unity的IMGUI实现。二、实现效果三、具体实现1. 基本数据 private int [,] board = new int [3,3];//棋盘,0、1、2分别代表空、玩家1占据、玩家2占据 private int turn = 0;//0表示当前

2020-09-23 09:28:26 601

原创 游戏介绍——钢琴块2

简介《钢琴块2》是猎豹移动自主研发的一款将音乐和街机玩法结合的手机游戏。它从实现玩家音乐梦想的角度出发,以大量世界知名钢琴曲为内容,融合了街机游戏极富挑战性的玩法,上线后,迅速成为2015年全球最为火爆的音乐手游,至今仍有广泛受众。——百度百科游戏规则游戏规则非常简单,在屏幕上会随机出现黑块,这些黑块正在往下掉,玩家需要做的事情就是在黑块调掉到屏幕底端之前点击它们,错点或不点都会导致游戏失败。游戏特色一、音乐与游戏的结合正如简介所言,这款游戏不仅仅是“点击黑块”,其最大的特色是将这些

2020-09-21 17:43:36 1864

原创 ubuntu18.04 安装/更新go语言开发环境

一、安装golang首先查看系统上有没有go的版本若没有go的版本,通过系统包安装检查是否安装成功二、创建工作目录在home目录下新建一个目录gopath(名字可以任意),在该目录下新建三个子目录:src – 里面每一个子目录,就是一个包。包内是Go的源码文件pkg – 编译后生成的包的目标文件bin – 生成的可执行文件。三、设置环境变量编辑home目录下的.bashrc文件,在末尾添加以下内容:(home/xumy/是我的home目录)运行 source

2020-09-13 16:22:47 2193 3

原创 洛谷线段树题目代码

参考链接线段树从入门到进阶以下是我在洛谷中对应题目的AC代码【修改区间,查找单值】3368 树状数组2#include<iostream>#include<vector>#include<stdio.h>using namespace std;struct Node { int sum; int l,r;}; void build_tree(int i, int l, int r, vector<Node>& n

2020-07-27 20:18:28 151

转载 packet tracer 详细基本使用方法

传送门

2020-06-27 15:59:41 2086

原创 c 网络编程之UDP统计丢包数

简介此项目在局域网下的两台主机间完成,需要一台主机向另一台主机连续发送100个包,并统计另一台主机实际收到的包的个数。程序设计1.配置环境实验选择在Dev C++中开发,由于使用了windows网络编程的相关API,需要包含<winsock2.h>头文件以及在项目中添加静态链接文件wsock32.lib。添加静态链接文件的方法:项目->项目属性->参数->链接->加入库或者对象,找到wsock32.lib并添加到项目中。选择同一个局域网下的两台主机,分别作为发

2020-05-28 21:47:26 3387 3

原创 c 网络编程之TCP

简介此项目的目的是分别编写TCP的客户端和服务端程序并为两者建立通信,客户端收到从服务端发送的服务端本地时间。环境此项目在Dev-C++ 5.11下开发,需要用到的库有winsock2.h,以及静态链接文件wsock32.lib。需要分别创建两个项目server和client,先运行server.cpp,再运行client.cpp。服务端程序//server.cpp#include<winsock2.h>#include<stdio.h>#include<st

2020-05-28 13:44:08 345

原创 fiddler 修改响应数据

简介fiddler既是一个抓包工具,通过将其设置为电脑或手机的网络代理可以实现修改请求和响应数据的目的。接下来简要介绍修改电脑端响应数据的方法。步骤第一步是安装和配置fiddler,这个很容易做到就不赘述了。第二步,打开fiddler,菜单栏rules->automatic Breakpoints->选择断点方式,有两种方式可供选择,before response代表截断客户端请求,after response代表截断服务器响应。因为我们现在要修改响应信息,所以选择后一种方式。第三步,

2020-05-26 22:17:54 2258

原创 图像识别初探:寻找眼睛

最近实验室的老师布置了第一个简单作业:给出一张图片和一张由图片中人物截取出来的眼睛图片,设计一个算法,在完整图片中找到眼睛的位置。先上直观效果输入图片输出图片输入图片输出图片完成这个任务需要的预备知识(只需了解即可不用深入)有向量相乘的性质以及卷积的概念。所谓卷积,简单来讲就是矩阵与矩阵对应的元素分别相乘(注意,不是矩阵乘法),一般会有一个较小的矩阵作为过滤器,从较大图片的左上角遍历到右下角,计算每个小矩阵的卷积和(小矩阵的大小和过滤矩阵相同),其中最大和对应的点就是匹配程度最高的

2020-05-16 18:13:56 1316

原创 牛顿迭代法实现开根号

什么是牛顿迭代法牛顿迭代法,顾名思义,是一种通过迭代向目标值逼近的方法,常用于数值分析当中(比如求非基本函数的根)。牛顿迭代可以证明从定义域内的任何初始点开始迭代,最终一定可以收敛到目标值。牛顿迭代公式简单理解将问题作如下简化:假设给定一个函数,求其零点。可以看到在图中,初始点横坐标为p0,从该点作切线与纵坐标相交于(p1, 0),下一步又取p1作为迭代的基本点,作切线得到p2。直观地看到随着迭代pn逐渐地逼近真正的零点p,假设在第n次迭代,pn恰好等于p,则pn+1也等于p,迭代的坐标不会再发

2020-05-09 09:18:04 7241

原创 c++ 构建哈夫曼树

简介哈夫曼树是一种用来对字符进行编码的数据结构,可以根据字符的使用频率来决定字符的二进制表示,使得转化后的二进制序列尽可能短。哈夫曼树的具体介绍见此博客用漫画介绍哈弗曼树接下来介绍哈夫曼树的构造方法,假设给定n个字符及其对应的频率(出现次数),求出用哈夫曼编码后编码串的长度。比如:4 //字符个数a 1b 2c 3d 4会返回19。(如果不知道怎么算请看上面链接的博客)c++构造方法一首先可以想到用优先队列,将包含频率信息的节点加入队列,然后每次从队列中拿出两个最小的节点a和b,

2020-05-08 18:55:09 2268

原创 c++之复杂类型作为unordered_map的键值

unordered_map & unordered_set我们知道c++中有unordered_map和unordered_set这两个数据结构,其内部实现是哈希表,这就要求作为键值的类型必须是可哈希的,比如常见的数据类型int、string等。但在很多应用中我们可能需要用到比较复杂的类型作为键值,比如vector<int>、pair<int,int>,乃至自定义...

2020-04-26 20:16:42 6493 3

空空如也

空空如也

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

TA关注的人

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