自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 以太坊交易基础知识

为了防止这样的恶意攻击,以太坊增加了计算交易次数和序列的Nonce计数器,只有账户的Nonce和交易的Nonce对应时交易才是合法的。用户在本地的以太坊钱包软件中选择要发送交易的地址(From),输入目标地址(To),金额(Value),是否部署或调用合约(Data),手续费单价(GasPrice)等,确认发送至以太坊节点,节点和钱包可以是同一台物理服务器,可以可以不是。节点收到交易以后对交易进行验证(交易的签名、交易的发起账号余额是否能支付转账金额和手续费、交易的Nonce值是否为账号已发出的交易数)。

2023-04-13 19:12:04 820

原创 主流区块链跨链技术

简单介绍三种主流的区块链跨链技术

2023-01-13 11:35:18 1812

转载 A-LOAM源码解析

声明:本文是笔者在学习SLAM时发现的好文,与诸君分享转载自:https://www.cnblogs.com/wellp/p/8877990.html导读下面是我对LOAM论文的理解以及对A-LOAM的源码阅读(中文注释版的A-LOAM已经push到github,见A-LOAM-NOTED),最后也会手推一下LOAM源码中高斯牛顿法(论文中说的是LM法)求解ICP配准的非线性最小二乘问题,这一部分在A-LOAM代码中用Ceres优化函数库做了简化,CSDN也有篇不错的博文,知乎也有篇很赞的文章,如有问

2021-08-03 15:54:43 3655

原创 ROS Beginner(长文预警!

ROS Beginner引言本文是适用于ROS初学者的笔记,包含从基本概念到尝试创建服务端和客户端的内容。参考网站:http://wiki.ros.org/cn/ROS/Tutorials1.创建一个catkin工作空间mkdir -p ~/catkin_ws/srccd ~/catkin_ws/catkin_make(编译)source devel/setup.bash2.文件系统软件包:Packages,ROS代码的软件组织单元Mainifests:package.xml清单是对

2021-07-23 19:28:23 282

原创 XML——可扩展标记语言

XML——可扩展标记语言本质:XML:一种用于标记电子文件使其具有结构性的标记语言特点(1) XML可以从HTML中分离数据(2) XML可用于交换数据(在不兼容的系统中间)(3) XML可应用于B2B中(4)利用XML可以共享数据,纯文本,易读,方便共享(5) XML可以充分利用数据(6) XML可以用于创建新的语言格式XML是纯文本模式1.必须有声明语句<?xml version="1.0" encoding="utf-8"?>2.大小写区分因此最好养成统一的

2021-07-23 19:05:56 264

原创 第一章 计算机系统漫游

2021-07-19 20:39:34 104

原创 计数与组合

计数与组合一、组合计数基本原理1.加法原理和乘法原理加法原理:集合元素可以被划分为集合族F = {S1, S2, S3…}则S的元素个数是这些元素个数之和:|S| = |S1| + |S2| + |S3|+…|Sn|注意:1)分类标准:不重复、不遗漏​ 2)分类后的计数应比原来的计数更为简单乘法原理:若集合S的每个元素是n个元素构成的序列,每个元素si的取值可能有mi种,则:|S| = m1*m2…m n注意:1)分布思维方式​ 2)各个子任务有独立性和相关性关于加法原理与乘法原理

2021-06-13 00:18:12 640 2

原创 数据挖掘应用实例分析

数据挖掘应用实例分析——个性化推荐系统​ 数据挖掘技术,一门基于计算机技术与大数据时代信息处理需求的技术产物,从世纪之交的火热发展以来,不知不觉间,早已应用到我们生活的方方面面:电子邮箱中的垃圾邮件分类、电影院的票房预测、网页上的广告推荐、语音识别、电网语义精确搜索等。还有人工智能、自然语言处理、数据修正等。我们认为,数据挖掘技术将成为互联网时代应用最广泛的技术之一,它有可能为人类社会带来一个新的时代。​ 但是由于笔者才疏学浅,今天我们暂不谈得那么高深,只分析的一个常见的应用实例——个性化推荐系统。

2021-03-28 19:11:13 5584

原创 十进制转为二进制

十进制转为二进制一.整数1)权和法将所要操作的整数分解写为2的n次方的和,其中最低位是2^0=1例:9 = 8 + 1 or 9 = 2^3 + 2^0​ 2^3 2^2 2^1 2^0​ 1 0 0 1​ 所以9的二进制数是10012)除2取余法(重复除2法)将要操作的十进制数重复除2,可得余数0或1;将最先得到的余数作为LSB,最后的做MSB例: Remainder(余数)​ 12/2 = 6

2021-03-13 23:04:50 703

原创 命题逻辑详解

命题逻辑详解文章目录命题逻辑详解一.命题逻辑的基本概念1.命题与真值2.原子命题与复合命题二.命题逻辑公式的语法1.命题逻辑公式的归纳定义:2.抽象语法树3.子公式:4.语法性质5.命题逻辑公式的简写三.命题逻辑公式的语义1.命题逻辑公式的真值表2.命题逻辑公式的分类四.命题逻辑的等值演算1.逻辑等值定义:2.定理:3.等值演算4.命题逻辑公式的范式五.命题逻辑的推理理论1.推理的有效性2.命题逻辑的自然推理系统3.构造验证推理有效性的论证六.命题逻辑的应用1.自然语言命题的符号化2.普通逻辑问题的符号化

2021-03-12 19:26:33 3120

原创 内存分区模型

内存分区模型划分内存区域的意义:增加灵活性1.代码区存放函数体的二进制机器指令,由操作系统进行管理特点:共享(对于频繁执行的只生成一份代码)、只读(防止指令的意外修改)2.全局区存放全局变量、静态变量、常量(字符串常量、其他常量)程序结束后由操作系统进行回收3.栈区由编译器自动分配释放,存放参数值,局部变量等注意:不要返回局部变量的地址!!(虽然编译器可能做一次保留)4.堆区由程序员分配和释放,程序结束后由操作系统回收p.s. C++中主要利用new来开辟内存,C中利用mallo

2021-03-09 18:43:32 248 1

原创 C++中的引用

C++中的引用注意:(写在前面)0.引用的本质是别名。1.必须初始化2.必须引用一块合法的内存int & t = 10;//不合法,没有合法内存const int & r = 10;//编译器会自动创建内存r = 9;//不可以,const 只读3.引用的本质:引用的本质是一个指针常量。指针常量的指向不能改变对于我们,引用只是别名,关于指针、调用、地址等操作都由编译器完成。4.引用初始化后不能再更改。int a = 8;int b = 3;int& p

2021-03-09 18:42:57 177

原创 算法语言(基础)

算法语言(基础)0.算法(algorithm)算法是一些明确的(definite)步骤的有限(finite)序列。应该具有通用性(generality),有输入和输出(可移植)。p.s.算法步骤的明确性是一个比较主观的性质。1.三种主要规则算法实际上是给出一些基本步骤或根据一些规则组合而成的一种复合步骤的有限序列。将基本步骤组合成复合步骤的规则主要有以下三种:1)顺序结构(sequential structure):算法的一个或多个步骤按照书写的顺序依次执行;2)选择结构(selective

2021-02-26 20:46:27 1399

原创 代数语言(基础)

代数语言(基础)0.引言本文介绍离散数学中代数语言的基础知识,以下三条是我们需要知道的:​ 代数的核心是运算。​ 运算是某个集合的运算。​ 运算要具有封闭性。(比如:减法不是自然数集的运算)1.交换律、结合律这两个大家应该都知道,所以不再复述2.单位元、零元单位元:集合A的一个元素a称为运算★的单位元,如果对A的任意元素 x 都由 x ★ a = x, 且a ★ x = x。​ (没有假定该运算满足交换律)(单位元也称幺元)例如:0是实数集加法运算的单位元,1是实数集乘法运算

2021-02-26 17:00:04 5453 3

原创 逻辑门

逻辑门1.非门(反相器)在电路中可以用一个小圆圈或三角形表示,作用是把高变低,低变高2.与门(全高输出高)逻辑表达式: X = AB (A·B)(布尔乘法)3.或门(有高输出高)逻辑表达式:X = A + B(布尔加法)4.与非门(将与门的输出反相)逻辑表达式:X = (A B)’5.或非门(将或门的输出反相)逻辑表达式:X = (A+B)’6.异或门(两个输入相反,输出高水平)7.同或门(与异或门相反)p.s.异或门和同或门只有两个输入...

2021-02-10 12:38:17 3594

原创 数据类型

数据类型C语言中的数据类型包括以下几种:序号类型与描述1基本类型: 算术类型,包括整数类型和浮点类型2枚举类型: 算术类型,用来定义在程序中只能赋予其一定的离散整数值的变量3void 类型: 类型说明符 void 表明没有可用的值,可以通过强制类型转换变成基本数据类型4派生类型: 指针类型、数组类型、结构类型、共用体类型和函数类型整数类型:类型存储大小值范围char1 字节-128 到 127 或 0 到 255uns

2021-02-05 08:39:37 224

原创 枚举类型

枚举类型定义用户自定义的数据类型,称为枚举类型;用标识符enum表示整型枚举常量集合数值除非特殊定义,否则集合中的整型将从0开始,依次递增,增幅为1若其中一个值被显式的定义为整数n,其后从n开始依次递增1(一个枚举类型中多个成员可以有相同的常量值)命名通常采用大写字母来给枚举常量命名,使其在程序中明显,表示不是变量例子enum months{ JAN, FEB, MAR, ARI = 1, MAT, JAN, JAL, AUG, SEP, OCT, NOV, DEC};//上面的常量

2021-02-05 08:38:42 297

原创 共用体类型

共用体类型介绍:与结构体一样,共用体也是一种派生数据类型。共用体的成员共享一个存储空间。避免了不再使用的变量仍占据内存空间的浪费情况。共用体的成员可以是任意数据类型,存储一个共用体的字节数等于其成员数据类型中占有字节数最大的数据类型所占字节数。共用体每次只允许访问一个成员变量,一种数据类型。共用体的声明:和结构体相同,只是把struct换成union注意1.和结构体一样,不能比较两个共用体的大小。2.访问共用体成员的方式和结构体相同。...

2021-02-05 08:12:37 903

原创 队列的实现

队列的实现队列,顾名思义,是指把数据像排队一样进行管理。先进先出,即只能从队尾加入数据,从队头删除数据。队列的实现依靠以下结构体:struct queue { int front; int tail; int* elements;};实现关于队列各个操作:#include <stdio.h>#include <stdlib.h>#define MAX_SIZE 100// 初始化一个队列void initialize(struct queue* q)

2021-02-03 17:45:12 237

原创 有序链表的实现

有序链表的实现链表的定义依赖于以下结构体:struct Node { struct Node* next; int value;};链表依赖一个一个的节点连接而成,由每一个节点中的指向结构体类型的指针指向下一个节点。现在给出n个数字,将它们按照从小到大的顺序依次插入链表中,所需相应函数的声明如下:void insert(struct Node** head, int num);void print_linklist(struct Node* head);void delete_li

2021-02-03 17:26:34 898

原创 指针与数组区别演示

指针与数组引言:指针与数组是C语言中的重要组成部分,它们不一样却又有着紧密的联系。下面将用几个代码例子展示它们的关系。测试代码:#include <stdio.h>#include <stdlib.h>int main(void){ // 一维数组 printf("Size of int: %d(byte)\n", sizeof(int)); printf("Addresses of array\n"); int arr[3] = {1, 2, 3},

2021-02-03 13:02:13 161

原创 选择排序

选择排序描述:假设给出10个无序整数,要求从小到大排序。利用选择排序法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。代码:#include<stdio.h>#define NUM 10//可以根据要求更改int main() { int arr[NUM], i, j; for (i = 0; i < NUM; i++) { scanf("%d", &arr[i]); } for (i

2021-02-03 10:15:40 121

原创 函数指针范例

函数指针范例定义函数指针是指向函数的指针变量。(Function pointer)例子下面给出一个应用函数指针的例子:定义了一个函数指针数组及三个函数实现,将三个函数地址赋予函数指针数组,并通过函数指针数组调用三个函数。#include<stdio.h>void *(*pf[3])(char *p);void *fun1(char *p){ printf("fun1:%s\n",p); return p;}void *fun2(char *p){

2021-02-03 09:45:53 279

原创 全排列的递归实现

全排列的递归实现题目要求:给出一个n, 按字典序输出1~n的全排列。代码#include<stdio.h>#include<stdlib.h>void fun(int cur[], int m, int arr[], int n) { int i, j; if (n == 0) { for (i = 0; i < m; i++) { printf("%d ", cur[i]); } printf("\n"); } for (i = 0;

2021-02-03 09:11:21 154

原创 C语言_简单计算器

C语言_简单计算器文章目录C语言_简单计算器1.问题描述2.算法描述有关想法a.有限状态自动机b.逆波兰表达式算法实现1)准备阶段2)处理字符串3)利用token序列计算4)在main函数中调用计算器函数以实现多组样例测试3.测试数据和测试结果4.使用说明关于表达式合法性的规定1.问题描述设计简单计算器,能够处理含有‘+’、‘-’、‘*’、‘/’、‘(’、‘)’、‘^’、‘ ’和非负数整数的混合运算(即加减乘除,括号运算,幂运算),检测不合法的运算表达式。输入输出长度不超过80个字符,包括空格,

2021-01-30 19:23:14 905 3

原创 C语言_随机数

C语言_随机数0.引言随机数的生成在一个令人感兴趣的领域——模拟与电子游戏 应用广泛。如何生成随机数是C语言中一个重要的知识内容。1.库函数rand()头文件:<stdlib.h>功能:将产生一个在0到RAND_MAX之间的整数,RAND_MAX一般不小于32767.​ (我们暂时假设得到每一个整数的概率相等)2.rand()%n (比例缩放)n称为比例因子。功能:产生 0 ~(n - 1)之间的整数。p.s.为了得到我们需要的范围,通常在其后加m,m为范围起始数,n做

2021-01-30 19:14:42 238

原创 C语言_预处理

C语言_预处理文章目录C语言_预处理0.引言1.#include2.#define (符号常量)3.#define(宏)4.条件编译1)#if2)#ifdef3)#ifndef5.#error和#pragma预处理命令6.#和##运算符0.引言C的预处理是在程序被编译之前执行的,包括将其他文件包含进正在编译的文件,定义符号常量和宏,条件编译和有条件的执行预处理命令。预处理命令都以 # 开头。1.#include功能:将指定文件的一个副本包含到命令所在位置上形式:#include<filen

2021-01-30 13:15:22 331 6

原创 C语言理论题经验分享2

C语言理论题经验分享2本文是接上一篇博文的^^:理论题经验分享1文章目录C语言理论题经验分享21.关于switch2.关于sizeof()3.算数中的数据类型转换4.文件输入\输出(IO)5.关于if()中的条件6.关于结构体7.关于const1.关于switch1)switch后的每一个case,后不加break会一直执行下去2)switch(expert1)中的expert1只能是常整数(整数表达式或枚举常量),不能是变量2.关于sizeof()1)sizeof(str)会返回字符串长度

2021-01-30 09:41:40 163

原创 C语言理论题经验分享1

C语言理论题经验分享1文章目录C语言理论题经验分享11.机器语言、汇编语言、高级语言2.位运算3.关于i++和++i4.输出格式1)不按标准的占位符输出,会输出垃圾值junk value2)**%.nf和%m.nf的含义:**3) 关于 "%*s":4)%nd和%0nd我们在学习C语言的时候可能经常会遇到各种各样***稀奇古怪***(==你不会)的理论题,虽然在实际应用中可能遇不到这些情况,但是掌握这些基础理论知识对加深我们对C语言的理解和学习有很大好处。以下是本菜鸡整理的一些在学习中遇到的理论题问

2021-01-30 09:40:46 432 2

原创 文件输入输出(IO)

文件输入\输出(IO)操作文件操作:(文本文件)模式描述r打开一个已有的文本文件,允许读取文件。w打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度,重新写入。a打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。r+打开一个文本文件,允许读写文件。w+打开一个文本文件,允许读写文件。如果文件

2021-01-30 09:38:27 763

原创 位运算

位运算符号描述运算规则&与两个位都为1时,结果才为1。0&0=0 0&1=0 1&0=0 1&1=1|或两个位都为0时,结果才为0。0|0=0 0|1=1 1|0=1 1|1=1^异或两个位相同为0,相异为1。0^0=0 0^1=1 1^0=1 1^1=0~取反0变1,1变0。~1=0 ~0=1<<左移所有位左移若干位,高位丢弃,低位补0。(用法:a=a<

2021-01-29 16:23:14 128

原创 提高程序可读性

提高程序可读性点开这篇文章,意味着你有想成为更好的程序员的决心,那么请认真阅读以下内容:在编程过程中注意提高程序的可读性是良好的编程习惯,这使程序更易于理解,也更容易在以后进行修改和更正。同时也有助于我们理清自己的编程思路。为了避免步入代码的wading,可读性是必要的。代码不仅追求效率,也追求优雅,也即“干净利落的抽象”——crisp abstraction(出自Grady ,《面向对象分析与设计》作者)否则可能应了那个程序员界的冷笑话:你刚写完这个程序的时候,只有你和上帝知道是什么意思;一年

2021-01-29 13:19:27 3028

原创 经典命名法介绍

经典命名法介绍1.匈牙利命名法该命名法是在每个变量名的前面加上若干表示数据类型的字符。基本原则是:变量名=属性+类型+对象描述。如i表示int,所有i开头的变量命都表示int类型。s表示String,所有变量命以s开头的都表示String类型变量。例子:chName 表示用字符类型char表示的名字uHeight 表示用无符号整型unsigned int表示的高度数值Windows应用程序采用匈牙利命名法定义变量名。该命名法因微软公司程序员CharlesSimonyi(查尔斯·西蒙尼)

2021-01-29 12:25:18 969 7

原创 C语言_贪吃蛇

C语言_贪吃蛇文章目录C语言_贪吃蛇1.主要原理2.操作说明3.准备环节——所需库函数、全局变量和结构体声明4.所需代码块(函数)1)光标移动到指定位置2)打印游戏边框及初始画面3)相应按键操作4)蛇的移动5)随机生成食物6)判断蛇的运动是否合法5.main函数6.反思1)关于判断:2)细节/升级版:1.主要原理蛇身:由数组构造移动:绘制一个新蛇头,擦掉蛇尾,更新数组进食:判断一旦蛇头遇到食物,则只增加蛇头而不擦除蛇尾,更新数组2.操作说明1)用户通过w, s, a, d键控制蛇的上下左右移动

2021-01-29 00:11:09 186 2

原创 关于gotoxy函数

关于gotoxy函数用法:#include<conio.h>功能:将光标移动到屏幕指定位置,用于屏幕输出屏幕左上角定义为光标的坐标原点,横向X轴,纵向Y轴函数原型声明:void gotoxy(int x, int y);注意它并不是一个C和C++标准库函数中的函数,很多编译器中没有提供这个函数。不过可以利用Windows提供的API函数自定义这个函数。(别忘了包含头文件<windows.h>)一个版本:void gotoxy(short x, short y)

2021-01-29 00:07:18 3756

空空如也

空空如也

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

TA关注的人

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