自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄嘉成的博客

黄嘉成的博客

  • 博客(91)
  • 资源 (2)
  • 收藏
  • 关注

原创 【论文笔记】SAFER: A Structure-free Approach for Certified Robustness to Adversarial Word Substitutions

论文SAFER: A Structure-free Approach for Certified Robustness to Adversarial Word Substitutions的笔记

2022-10-19 21:03:15 483 3

原创 你真的弄懂什么叫「6次确认」了吗

引言「6次确认」是区块链中的一个基本概念,但是很多同学没弄明白「6次确认」具体的含义,甚至会存在很多错误的理解,包括但不限于:交易经过6人次的矿工确认后才被写入链条区块后接上6个后续区块,区块中的交易才生效区块后接上6个后续区块,区块中的数据难以被修改以上这些理解都和实际意义存在偏差。那么,理解 「6次确认」 的正确姿势是什么呢?不想看长篇大论的同学,这里先直接放出结论:假设攻击...

2020-02-11 16:29:58 3529

原创 小白也能看懂——村民告诉你什么是区块链

近几年,区块链这个词可谓是火遍了全球,无论是工作还是生活里,总有人在聊区块链,仿佛不懂区块链就快要落伍了,区块链到底是什么?这篇文章用最通俗的语言告诉你答案。

2020-01-20 18:31:15 798 1

原创 手写机器学习算法07——支持向量机

支持向量机(SVM,Support Vector Machine)是一种分类算法,其基本思想是在样本空间中找到一个超平面,在将不同类别的样本分开的前提下,使超平面离距自己最近的样本尽可能远以获得最好的泛化能力

2019-09-12 12:27:12 3375 4

原创 拉格朗日乘子法

学习支持向量机的原理时,会遇到带约束条件的极值问题。那么理解拉格朗日乘子法就很有必要了。

2019-08-30 13:51:51 7367

原创 手写机器学习算法系列06——DBSCAN

我们在上一节介绍了K-means聚类算法和其python实现。但是k-means也存在着诸如不适用于非凸样本,超参数簇聚数目不好指定且对结果影响极大等缺点。针对k-means的上述缺点,今天带来另一种聚类算法,基于密度的聚类算法——DBSCAN。...

2019-08-23 16:37:14 1063

原创 手写机器学习算法系列05——k-means

k-means是一种聚类算法。聚类与之前讲过的分类很相似但实质不一样,分类是已有了明确的类别,然后将样本分到不同类别中去;聚类是事先没有明确的类别,将特征各自相近的样本分别聚在一起。k-means则是原理比较简单的聚类算法。...

2019-08-20 11:57:33 769 4

原创 手写机器学习算法系列04——决策树

决策树(DT,Decision Tree)是一种常用的有监督学习的分类算法,包括ID3、C4.5、C5.0、CART等种类。本文以ID3为例剖析决策树算法的原理和代码实现。

2019-08-12 13:01:38 1674 1

原创 手写机器学习算法系列03——逻辑回归

逻辑回归虽然名字中带有回归,但实质上并不是起到回归作用,而是一种典型的二分类算法。至于为什么叫回归,可能是因为分类过程需要依赖于线性回归模型的输出。多分类问题也可以用逻辑回归来解决,比如通过对每种分类都分别进行一次二分类来实现。...

2019-08-08 18:43:41 1001 3

原创 手写机器学习算法系列02——梯度下降

在上一篇手写机器学习算法系列01——线性回归中,我们已经成功地通过矩阵求偏导的方法算出目标函数的极小值点。这种最小二乘法的优势在于代码实现会十分简单,直接将样本数据套用以上公式即可求解出任何线性回归模型的参数值。不过缺点也很突出。所以,我们需要学习另一种普遍性更强的方法来求解目标函数的极值点——梯度下降。...

2019-08-03 19:34:48 1755 1

原创 手写机器学习算法系列01——线性回归

线性回归是最简单的机器学习算法,说白了就是构造一元或者多元的线性方程,然后根据现有样本数据进行函数拟合,求解出线性方程的各个参数,之后就可以通过该线性方程进行相关预测。

2019-08-01 15:02:32 1474 3

原创 Spring IOC好神奇?我教你实现一个

Spring的IOC到底怎么实现的?我一步步教你如何实现

2019-03-05 18:22:14 824

原创 基于逆波兰算法实现计算器(Java控制台版)

计算器是日常生活中很常见的工具之一,但并不意味着计算器的软件实现原理就很简单。不少初学的小伙伴在尝试开发计算器的功能时,受到算术表达式中**运算符优先级**和**多层嵌套**等问题的困扰。本文采用**逆波兰算法**来实现计算器的功能,为有需要的小伙伴详细讲解原理和具体实现。

2018-12-12 16:10:13 2255

原创 Python网络爬虫入门案例

一、什么是网络爬虫?网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等,本质上是一段程序或脚本,可以自动化浏览网络中的信息,浏览信息时程序会按照一定的规则去浏览,这些规则我们称之为网络爬虫算法。 作用:定制搜索引擎自动去广告爬取图片、文本爬取金融信息进行投资分析二、前置知识Http协议Html正则表达式一门编程语言(建议Python)三、网络爬虫的核心步...

2018-09-18 13:29:11 2659 11

原创 TypeError: web3.eth.Contract is not a constructor错误解决

这是web3.js开发者在创建合约对象时很容易发生的错误,其实就是不同版本web3.js带来的API变化问题。请检查你的web3.js版本:如果version<1.0.0,使用:web3.eth.contract(studentFactoryArtifact,address);// 注意区分contract大小写如果version>1.0.0,使用:ne...

2018-08-22 09:59:16 6916 3

原创 Error: new BigNumber() not a base 16 number

在js中测试调用合约时发生了以下错误:StuDetailsApp.js:44 Error: new BigNumber() not a base 16 number: at T (inpage.js:1) at inpage.js:1 at new r (inpage.js:1) at i.formatOutputString [as _outputForma...

2018-08-05 18:35:12 3499

原创 js解析智能合约Solidity返回的struct

Solidity是以太坊智能合约的编程语言,我们可以通过web3.js来与合约进行通信,并接收Solidity函数的返回值。不少人在接收struct类型的返回值时不知道怎么处理,本文展示一种解析方法,以供各位学习交流,如有更好的方法,欢迎讨论。

2018-08-03 12:52:27 6121 5

原创 Java设计模式之抽象工厂

如果前面已经学习了工厂模式,抽象工厂学习起来也很简单,只是对工厂模式做了关于产品族和产品等级结构概念的扩展。

2018-07-15 12:55:27 498

原创 Java设计模式之工厂模式

上篇介绍了简单工厂,然而简单工厂并没有很好的遵守开闭原则,工厂模式是针对简单工厂不易扩展、对修改开放等缺点作出的改进。本文的依然选用上篇简单工厂中的手机品牌与厂家的例子。

2018-07-15 11:51:08 328

原创 Java设计模式之简单工厂

从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

2018-07-14 14:49:21 368

原创 Java设计模式之单例模式

单例模式是Java设计模式中最简单也是最常见的一种,它保证了在应用程序中,某个类只有一个实例存在。像配置文件的对象,数据库连接池,多线程的线程池,任务管理器等等,都是单例模式的典型应用。本文循序渐进,由简至繁,介绍单例模式的写法。

2018-07-13 15:10:14 279

原创 CryptoKitties源码剖析(二)——KittyBase

引言上一节讲解了Ownable、ERC721、GeneScienceInterface、KittyAccessControl四个合约,今天来看看接下来的KittyBase这一合约。KittyBase是CryptoKitties的基类/合约。保存所有常见的structs, events 和 base variables。KittyBase合约contract KittyBase is K...

2018-06-12 11:27:14 648

原创 命令行与ECS通信详细流程

之前一直想写这个教程,正好前几天逛论坛时看到Azure的1元试用优惠会活动,玩了一会后决定记录一下,顺便甩个链接——Microsoft-Azure 试用申请表。当然也不是一定要选用Azure,国内的云服务商如阿里云也都可以,选用其他服务商的可以跳过申请云服务器这一节。一、申请云服务器申请注册填写个人信息的过程就不写了,毕竟能看到这个教程的都不会在这有问题。最后支付宝付完1元...

2018-06-08 16:18:30 668

原创 CryptoKitties源码剖析(一)——Ownable、ERC721、GeneScienceInterface、KittyAccessControl

CryptoKitties是第一个基于Etherum的游戏Dapp,2017年下半年风靡一时,一度造成了Etherum网络的堵塞。虽然现在这款游戏的热度已经开始消退,但是作为技术学习而言,CryptoKitties确实是一个很好的案例参考教程。本节内容作为专栏的开篇,先以最基本的几个合约开始入手讲解。

2018-06-07 20:24:19 1379

转载 【CryptoKitties】CryptoKitties完整合约代码

CryptoKitties完整合约代码

2018-06-07 17:11:40 3224 1

原创 windows+ubuntu双系统启动引导修复教程

准备工作准备一个安装U盘,插入电脑->开机->选择试用Try ubuntu without install 输入命令打开终端(Open Terminal),获取root权限,执行以下命令:$ sudo su# sudo add-apt-repository ppa:yannubuntu/boot-repair# apt-get update# apt-get insta...

2018-06-03 20:01:25 27795 7

原创 使用truffle-contract与以太坊主链合约通信

truffle-contract与web3.js一样,都是用来与以太坊智能合约交互的JS库,但是相对于web3.js来说,truffle-contract封装得更简单一些,本文示范如何通过truffle-contract与以太坊主链上部署好的合约通信。第一步引入相关的包和合约ABI文件,并通过contract(abi)函数得到合约对象,ABI文件可以通过truffle comile命令对sol...

2018-06-03 19:38:14 2376

原创 GIT常用命令

GIT常用命令初始化仓库 初始化仓库 注释 git init 在当前目录新建一个Git代码库 git init [project-name] 新建一个目录 $ git clone [url] 下载一个项目和它的整个代码历史配置Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目...

2018-06-02 20:27:28 187

翻译 【Solidity】风格指南

风格指南概述本指南旨在约定 solidity 代码的编码规范。本指南是不断变化演进的,旧的、过时的编码规范会被淘汰, 而新的、有用的规范会被添加进来。许多项目会实施他们自己的编码风格指南。如遇冲突,应优先使用具体项目的风格指南。本风格指南中的结构和许多建议是取自 python 的 pep8 style guide 。本指南并 不是 以指导正确或最佳的 solidity 编码...

2018-06-01 13:21:12 501

翻译 【Solidity】可用于(内联)装配的语言:Joyfully Universal Language

Joyfully Universal LanguageJULIA是一种中间语言,可以编译到各种不同的后台(EVM 1、EVM 1.5和EWASM)。它已经可以用于Solidity内部的“内联汇编”,未来版本的Solidity编译器甚至会使用JULIA作为中间语言。对于JULIA来说构建高级优化器阶段也很容易。 注解 请注意,用于“内联汇编”的风格没有类型(所有都是U256...

2018-06-01 13:02:10 539

原创 【Solidity】Gas estimation failed-Gas estimation errored with the following message

今天在写完合约在remix部署测试的时候遇到了这么一个问题,一旦向合约里写数据就出现如下错误: Gas estimation errored with the following message (see below). The transaction execution will likely fail. Do you want to force sending? 如下图所示: 经过...

2018-05-31 17:17:14 11187 2

原创 【Solidity】函数returns多个值的接收方式

函数返回多个值学习过javascript或其他编程语言的童鞋看到Solidity中的函数可以有多返回值肯会有些惊讶(如下图),不知道该怎么对多返回值的函数进行接收。其实方法很简单的。// 函数可以返回多个值function multipleReturns() returns(uint a, uint b, uint c) { return (1, 2, 3);}同时接收所有返...

2018-05-26 11:26:30 6693

原创 【Solidity】internal、private、external、public区别

public与private对于public和private,相信学过其他主流语言的人都能明白:public修饰的变量和函数,任何用户或者合约都能调用和访问。private修饰的变量和函数,只能在其所在的合约中调用和访问,即使是其子合约也没有权限访问。external和internal除 public 和 private 属性之外,Solidity 还使用了另外两个描述函...

2018-05-26 11:02:50 24304 3

原创 【Solidity】Storage和memory关键字的区别和用法

在 Solidity 中,有两个地方可以存储变量 —— storage以及memory。Storage 变量是指永久存储在区块链中的变量。 Memory 变量则是临时的,当外部函数对某合约调用完成时,内存型变量即被移除。状态变量(在函数之外声明的变量)默认为“storage”形式,并永久写入区块链;而在函数内部声明的变量默认是“memory”型的,它们函数调用结束后消失。然而也有一些情...

2018-05-26 10:15:37 12033 2

翻译 【Solidity】应用二进制接口(ABI)说明

应用二进制接口(ABI) 说明基本设计在以太坊生态系统中, 应用二进制接口Application Binary Interface(ABI) 是从区块链外部与合约进行交互以及合约与合约间进行交互的一种标准方式。 数据会根据其类型按照这份手册中说明的方法进行编码。这种编码并不是可以自描述的,而是需要一种特定的概要(schema)来进行解码。我们假定合约函数的接口都是强类型的,且在编译...

2018-05-24 21:22:52 3017

翻译 【Solidity】合约的元数据

合约的元数据Solidity编译器自动生成JSON文件,即合约的元数据,其中包含了当前合约的相关信息。 它可以用于查询编译器版本,所使用的源代码,应用二进制接口Application Binary Interface(ABI) 和 以太坊标准说明格式Ethereum Nature Specification Format(natspec) 文档,以便更安全地与合约进行交互并验证其源代码。编...

2018-05-24 20:48:25 839

翻译 【Solidity】使用编译器

使用编译器使用命令行编译器Solidity的其中一个编译器是solc,即Solidity命令行编译器。使用solc --help提供对所有选项的阐述。编译器可以生成各种类型的输出,包括简单的二进制文件、抽象语法树(解析树)的汇编以及预计要花费的gas。如果仅仅想编译一个智能合约,可以用solc --bin sourceFile.sol命令print二进制数据。在部署合约之前,...

2018-05-24 20:42:53 1911

翻译 【Solidity】安全考量

安全考量尽管在通常情况下编写一个按照预期运行的软件很简单, 但想要确保没有人能够以出乎意料的方式使用它就困难多了。在 Solidity 中,这一点尤为重要,因为智能合约可以用来处理通证,甚至有可能是更有价值的东西。 除此之外,智能合约的每一次执行都是公开的,而且源代码也通常是容易获得的。当然,你总是需要考虑有多大的风险: 你可以将智能合约与公开的(当然也对恶意用户开放)、甚至是开源的网...

2018-05-23 22:36:47 540

翻译 深入理解Solidity——函数可见性定义符、修饰符、保留字和语法

函数可见性定义符(Function Visibility Specifiers)function myFunction() <visibility specifier> returns (bool) { return true;}public:在外部和内部均可见(创建存储/状态变量的访问者函数)private:仅在当前合约中可见external: 只有外部可...

2018-05-23 14:50:51 2014

翻译 深入理解Solidity——全局变量

全局变量(Global Variables)abi.encode(...) returns (bytes):对给定的参数进行ABI编码。abi.encodePacked(...) returns (bytes): Performes packed encoding of the given argumentsabi.encodeWithSelector(bytes4 selector, ...

2018-05-23 14:19:25 3940

Salary_Data.csv

线性回归是最简单的机器学习算法,说白了就是构造一元或者多元的线性方程,然后根据现有样本数据进行函数拟合,求解出线性方程的各个参数,之后就可以通过该线性方程进行相关预测。

2019-08-01

CryptoKitties完整合约代码

cryptokitties是个电子猫的养成与繁殖游戏,玩家必须用Ether购买电子猫,玩家自定价格。两只猫交配出的子孙会遗传到它们各自的256个位元基因组,如外观、个性、特征等,共有40亿种可能性。

2018-06-07

空空如也

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

TA关注的人

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