自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 你也可以轻松掌握机器学习(5)--- 从神经网络到深度学习

神经网络是一种人工智能方法,用于教计算机以受人脑启发的方式处理数据。这是一种机器学习过程,称为深度学习,它使用类似于人脑的分层结构中的互连节点或神经元。它可以创建自适应系统,计算机使用该系统来从错误中进行学习并不断改进。因此,人工神经网络可以尝试解决复杂的问题,例如更准确地总结文档或人脸识别。神经网络的发展史可以追溯到上个世纪40年代和50年代。

2024-04-19 20:43:34 1185 1

原创 你也可以轻松掌握机器学习(4)--- 分类中的逻辑回归

逻辑回归是一种常用于分类问题的机器学习算法,尤其适用于二分类问题。它的基本思想是通过将线性回归模型的输出映射到一个概率范围内,来进行分类。具体来说,逻辑回归通过使用逻辑函数(也称为Sigmoid函数)将连续的输出转换为0到1之间的概率值,然后根据这个概率值进行分类决策。gz的函数如下:这里举个例子,比如肿瘤的大小x是特征,是否恶性的y为0或1。其中回归函数f的含义就是肿瘤的概率。

2024-04-19 09:58:02 628

原创 你也可以轻松掌握机器学习(3)--- 机器学习教你下楼梯

回顾一下上篇文章关于线性回归的介绍。我们了解了成本函数的概念,以及训练模型的最终目的是匹配到成本函数最小的情况 - 即三维坐标中的“碗底”对应二维平面,则是等高线图的最小椭圆中心。然而,生活中的实际情况,我们得到的成本函数的图形化会更为复杂。会出现多个“碗底”。我们需要初始确认一点,并且从这点开始,找到一条路径,最终走到我们的“碗底”。而这个过程,就需要一套算法来指导。我们称之为梯度下降算法(Gradient Descent)。

2024-04-18 14:22:31 879

原创 你也可以轻松掌握机器学习(2)--- 从熟悉的y=kx+b到线性回归模型

在初中数学学习中,一次函数是数学中的基础,对于理解直线的性质和函数的变化规律至关重要. 一次函数是指数学中的一种函数形式,其中 x 的最高次数为1。它通常表示为 y=kx+b,其中 k 是斜率, b 是 y 轴截距。这个函数描述了一条直线的特性,斜率决定了直线的倾斜程度,而截距则是直线与y 轴的交点在 y 轴上的坐标。线性回归模型y=wx+b 是统计学和机器学习领域中最基础、最常用的模型之一。它同样描述了自变量 x 和因变量 y 之间的线性关系。

2024-04-16 18:22:01 1815 3

原创 你也可以轻松掌握机器学习(1)--- 什么是机器学习Machine Learning

机器学习的概念源于人类对于模仿和理解人类学习过程的渴望。想象一下,当我们教孩子学习区分苹果和橙子时,我们不是向他们详细解释每种水果的特征,而是通过展示大量的例子来帮助他们理解。机器学习的目标与此类似,它试图通过向计算机展示大量的数据样本,使计算机能够从中学习并提取规律,从而做出准确的预测或执行特定任务。换句话说,机器学习是一种让计算机从数据中学习的方法,而不需要显式地编写规则或指令。

2024-04-15 21:46:46 1663 1

原创 和区块链Say Hi(9)--- 非同质化代币NFT

每个非同质化代币都是独一无二的,具有不同的属性(非同质化),并且可证明其稀缺性。这一点与以太币和 USDC 等其他基于以太坊的代币不同,这些代币中每个都是相同的且具有相同的属性(“同质化”)。就像你不会关心钱包中的具体某一张钞票(或以太币)一样,因为它们完全相同且具有同样的价值,但你需要关心你拥有的是哪一个非同质化代币,因为它们都有独特的属性(“非同质化”)。资产的所有权可以在以太坊区块链上公开验证。

2024-04-14 21:40:19 1302

原创 和区块链Say Hi(8)--- 区块链的零知识证明

零知识证明是一种密码学概念,用于证明某个陈述的真实性,而不泄露任何关于该陈述的具体信息。在零知识证明中,证明者(通常是一个叫做证明者的实体)可以向验证者(通常是另一个实体)证明他知道某个秘密信息,但同时又不泄露任何关于这个秘密信息的细节,使得验证者相信该秘密信息确实存在,同时无法获取到该信息的具体内容。

2024-04-13 17:03:46 831

原创 和区块链Say Hi(7)--- 以太坊的燃料费Gas

在传统的加密货币交易中,费用通常是以货币单位(比特币中的BTC,或以太坊中的ETH)支付的。但以太坊不同,它引入了一种名为Gas的概念,用于衡量和支付交易执行的成本。简单来说,Gas就是以太坊网络中执行智能合约或发送交易所需的计算资源。每个操作(例如加密货币转账、智能合约执行等)都需要一定数量的Gas来完成。Gas的价格由市场供需决定,通常以ETH为单位支付。Gas在ETH中发挥了不和或缺的作用。资源衡量和成本控制: Gas充当了以太坊网络中的资源衡量单位,使得参与者可以更好地控制交易的成本。

2024-04-12 21:02:30 861

原创 和区块链Say Hi(6)--- 通过Remix发布以太坊Solidity智能合约

我们来学习一下如何通过Remix发布一个简单的ERC20智能合约。以下操作都是基于ETH sepolia测试网来进行的。

2024-04-11 13:47:29 516

原创 和区块链Say Hi(5)--- 关于稳定币,你想知道的一切

在加密货币世界中,稳定币是一种备受关注的数字资产。它们旨在解决加密货币市场的波动性问题,提供了一种价格相对稳定的替代品。

2024-04-11 10:24:45 527

原创 和区块链Say Hi(4)--- 什么是智能合约Smart Contract

智能合约是以太坊应用程序层的基石。它们是存储在区块链上的计算机程序,遵循“如果…那么…”(IFTTT) 逻辑,并且保证按照其代码定义的规则执行,智能合约一旦创建就无法更改。Nick Szabo 创造了“智能合约”这一术语。1994 年,他撰写了;1996 年,他撰写了。Szabo 构想了一个数字市场,在这个市场中,自动化的、通过加密学保证安全的流程使得交易和商业功能可在不需要可信中介的情况下进行。以太坊上的智能合约将这一设想付诸实践。

2024-04-11 09:50:33 899

原创 和区块链Say Hi(3)--- 什么是Web3

中心化网络已经帮助数十亿人融入了互联网,并在其上创建了稳定、可靠的基础设施。与此同时,少数中心化巨头几乎垄断了互联网,甚至可以为所欲为。Web3 是摆脱这一困境的方案。不同于科技巨头垄断的传统互联网,Web3 采用去中心化,由所有用户构建、运营和拥有。Web3 将权力赋予个人而非公司。在我们讨论 Web3 之前,先来看看我们是如何走到这一步的。

2024-04-10 16:44:07 782

原创 和区块链Say Hi(2)--- 以太坊Ethereum

比特币最初被设计为一种去中心化的数字货币,旨在作为一种替代传统货币系统的支付工具。它的主要目的是作为一种价值储存和价值交换的工具。以太坊则不仅仅是一种数字货币,更是一个去中心化的智能合约平台。以太坊的目标是建立一个可以执行智能合约的区块链平台,使得开发者可以构建和部署各种去中心化的应用程序(DApps)。

2024-04-10 16:11:43 897

原创 和区块链Say Hi(1)--- 故事的起源之中本聪的比特币白皮书

比特币的诞生可以追溯到2008年,一篇由中本聪(Satoshi Nakamoto)发布的论文《比特币:一种点对点的电子现金系统》。中本聪是比特币的创造者,但其真实身份至今仍是一个谜。这篇论文提出了一种去中心化的数字货币系统,允许用户在不经过金融机构的情况下进行点对点的交易,从而解决了传统金融体系中存在的诸多问题。比特币的核心技术是区块链(Blockchain),它是一种由区块组成的分布式数据库,记录了所有比特币网络上的交易。

2024-04-10 15:41:37 663

原创 新一代公链代表Solana(12) --- Solana的备忘录智能合约实战

实现一个备忘录合约程序。可以将一段内容存入到链上,并可以对其进行修改、删除。

2024-04-08 21:14:24 377 1

原创 新一代公链代表Solana(11) --- Solana的合约间调用CPI

Solana 中的合约间调用通常称为 CPI(Cross-Program Invocation),它允许一个 Solana 程序调用另一个 Solana 程序的功能。这种调用是通过向 Solana 区块链发送事务来实现的,其中包含了被调用程序的地址以及调用所需的数据。CPI 是 Solana 上构建去中心化金融(DeFi)和其他复杂应用程序的基础。通过 CPI,不同的智能合约可以相互协作,执行复杂的逻辑,并且可以实现更加灵活和强大的应用程序。

2024-04-08 14:14:54 895

原创 新一代公链代表Solana(10) --- Solana的程序派生地址PDA

程序派生地址是 Solana 区块链上的一种特殊账户类型,只有特定的程序(program_id)有权签名。这些地址采用与 Solana 公钥相同的格式,但确保不在 ed25519 曲线上存在对应的私钥。PDA 的设计目的是为了允许程序在调用其他程序时以编程方式生成签名,从而实现自动化的交易逻辑。PDA 可以作为用户拥有的每个代币的身份代币帐户(相对于铸币厂Mint)代币可以直接使用用户的 PDA 作为传输目的地发送给任何用户,例如Airdrop。

2024-04-08 12:39:54 537

原创 新一代公链代表Solana(9) --- 如何用VS Code开发Solana智能合约

Solana智能合约可以使用Rust编写,所以要学习使用VS Code开发Solana智能合约,首先你得掌握如何在VS Code上面编写Rust程序。

2024-04-07 21:17:24 647

原创 Rust从入门到暴走(26)--- Rust的并发编程之共享内存

在多线程编程中,共享内存是一个常见的挑战,因为多个线程需要同时访问和修改相同的数据。在Rust中,我们可以使用标准库中的 Arc(原子引用计数)和 Mutex(互斥锁)来实现安全的共享内存。本文将深入探讨这两个关键概念,介绍它们的使用方法以及如何在Rust中编写线程安全的代码。

2024-04-07 13:19:48 235

原创 Rust从入门到暴走(25)--- Rust的智能指针

Rust 的智能指针为程序员提供了强大的内存管理和数据结构构建工具。通过 Box、Rc 和 Arc 等类型,可以实现所有权传递、共享所有权和多线程安全等功能。智能指针还通过 RefCell 和 Mutex 等提供了内部可变性和并发安全性。智能指针是 Rust 中重要的工具,有效地平衡了性能、安全性和灵活性,为开发者提供了可靠的解决方案。

2024-04-07 13:00:48 275

原创 Rust从入门到暴走(24)--- Rust的并发编程之线程间通信

instead, share memory by communicating.” – 这个思想来源于Go编程语言文档中的口号在 Rust 编程语言中,Channel 是一种线程间通信(Inter-thread Communication)的方式,它允许不同的线程之间进行数据交换。Channel 中有两个重要的角色:发送端(Transmitter)和接收端(Receiver)。发送端负责将数据发送到 Channel 中,而接收端负责从 Channel 中接收数据。

2024-04-05 21:06:27 217

原创 Rust从入门到暴走(23)--- Rust的并发编程之简单的标准库API

Rust 提供了强大的多线程支持,使得开发者能够轻松地编写高效的并发程序。通过标准库提供的 std::thread 模块,开发者可以创建线程并进行线程间通信。借助原子类型和锁机制,Rust 还能有效地确保线程安全性,避免数据竞争和线程不安全的情况。多线程编程在 Rust 中的应用范围广泛,包括生产者-消费者模型、并行计算任务等。由于 Rust 的内存安全性和并发安全性特性,多线程编程在 Rust 中变得更加可靠和高效。

2024-04-05 20:15:32 470

原创 新一代公链代表Solana(8) --- 如何通过Playground发布Solana的智能合约

Solana 智能合约是用 Rust 编写的,可以在 Solana 区块链上执行的代码片段。与以太坊的 Solidity 不同,Solana 智能合约使用 Rust 语言编写,这使得它具有更高的性能和更好的安全性。智能合约通常用于执行复杂的逻辑,例如数字资产管理、投票、众筹等。对于Rust,同学们可以看一下我之前的,相信对于Rust很容易会有一个清晰的认识并且上手,Rust系列还在持续更新中。Solana为了初学者可以快速入门,提供了一个服务。可以在不需要本地环境的情况下,进行DApp的开发。

2024-04-05 09:19:53 882 1

原创 新一代公链代表Solana(7) --- Solana的公链交互之RPC远程调用

在之前的文章中,我们学会了如何通过命令行操作钱包,包括新建账户,查询余额,转账等核心操作。在这篇文章中,我们将讨论如何通过RPC远程调用获Solana公链信息。

2024-04-04 18:56:09 1106 1

原创 新一代公链代表Solana(6) --- 如何通过命令行创建Solana SPL Token代币

上一篇文章中我们实现了本地钱包的安装和一些简单的账户操作。在这篇文章中,我们将探讨如何使用命令行工具通过 Solana 区块链发行 SPL(Solana Program Library)代币并进行空投。SPL 是 Solana 提供的标准化代币协议,允许开发者创建和交易各种类型的代币。通过命令行,我们可以实现发行一个代币,并给自己账号mint一定数量的代币,然后通过命令行的方式或者插件钱包给其他同学空投该代币。

2024-04-03 16:41:41 363

原创 新一代公链代表Solana(5) --- 如何通过命令行安装Solana本地钱包

前文演示的是第三方钱包的使用Solana官方为我们提供了一套命令行工具来实现对Solana的操作,支持Mac/Linux/Windows,下面我们以Mac作为演示平台进行操作。

2024-04-03 15:51:34 539

原创 新一代公链代表Solana(4) --- Solana的SPL代币

在Solana世界中,SPL代币可以被视为类似于以太坊中的ERC20代币的概念。在以太坊网络上,ERC20提案定义了一套标准规范,用于创建普通代币合约,使得这些代币在以太坊生态系统中具有互操作性和兼容性。同样地,Solana网络中的SPL代币也遵循了类似的设计原则。Solana Program Library(SPL)是一组针对Sealevel并行运行时的链上程序的集合,其中包括了Token Program,简称为SPL Token。

2024-04-03 10:50:48 360

原创 新一代公链代表Solana(3) --- Solana的第三方钱包使用

Solana的钱包目前以Phantom、Solfare等Chrome插件为主, 类似TokenPocket、MathWallet等手机钱包为辅。甚至还有Solana Saga手机设备作为钱包。这里我们选择Phantom钱包,需要在Chrome安装插件。

2024-04-03 10:35:37 207

原创 新一代公链代表Solana(2) --- Solana的核心概念和技术

Solana是一个快速、安全且可扩展的区块链平台,旨在支持大规模的去中心化应用程序(dApps)和加密资产交易。它采用了一系列独特的核心概念和技术,使其在性能和可用性方面脱颖而出。

2024-04-03 09:40:43 790

原创 新一代公链代表Solana(1) --- Solana介绍

Solana是一条高性能的L1公链。从技术上讲,Solana 的有趣之处在于,其完全不同的系统架构导致了比其他区块链更高的速度和更低的成本。比特币每秒可以处理大约 7 个交易(TPS),以太坊是 30 个 TPS (直到 Eth 2.0 大幅提高),而 Solana 目前是 65,000 个 TPS。

2024-04-03 09:22:26 813

原创 Rust从入门到暴走(22)--- Rust的函数式编程之迭代器iterator和集合操作

Rust提供了自己的迭代器类型,称为 Iterator。Rust 的迭代器设计旨在提供高效且安全的迭代器抽象。迭代器是 Rust 中非常重要的概念,它允许您以函数式编程的风格对集合进行操作,提供了一组方法来遍历集合元素,如 collection()、map()、filter() 等。

2024-04-03 08:36:04 780

原创 Rust从入门到暴走(21)--- Rust的函数式编程之闭包closures

Rust 的设计受到了多种现有语言和技术的影响,其中一个明显的影响来自函数式编程(functional programming)。函数式编程风格通常包括将函数作为参数传递给其他函数、将函数作为其他函数的返回值、以及将函数赋值给变量以供之后执行等等。Rust 中的闭包(closures)和高阶函数(higher-order functions)等功能正是受到了函数式编程的启发而引入的。这些功能使得 Rust 更具表现力和灵活性,同时也使得代码更易于编写和理解。

2024-04-02 23:38:04 743

原创 Rust从入门到暴走(20)--- Rust的单元测试

在这个例子中,我们定义了一个 Rectangle 结构体,并实现了一个 area 方法来计算矩形的面积。然后在测试模块中编写了单元测试函数 test_rectangle_area,用于测试 area 方法是否正确计算面积。

2024-04-02 19:01:42 381 1

原创 Rust从入门到暴走(19)--- 如何写一个组织优雅的Rust命令行程序

main.rs 是命令行程序的入口,负责获取args以及核心业务逻辑的处理函数的调用。根据调用函数的返回结果决定程序是否正常运行下去或者终止。lib.rs 是核心业务逻辑的处理函数的定义,里面包括args的解析和验证函数,以及包括查询指定文件中是否包含指定关键词的函数。

2024-04-02 10:51:10 513 1

原创 Rust从入门到暴走(18)--- Rust的Option使用详解

Option 类型是一个枚举类型,它有两个变体:Some(T):表示存在一个值,这个值被包含在 Some 中。None:表示不存在值。

2024-04-02 08:01:20 336 1

原创 Rust从入门到暴走(17)--- Rust的I/O操作

Rust标准库提供了一组用于文件I/O操作的模块和类型,使得在Rust中进行文件读写变得非常简单。主要涉及的模块包括std::fsstd::io等。我们将逐步介绍这些模块的主要功能,并通过示例代码演示它们的用法。

2024-04-02 07:39:19 433 1

原创 Rust从入门到暴走(16)--- Rust的生命周期lifetime

当我们使用引用时,编译器需要知道引用的有效期,以确保引用指向的数据在引用被使用时仍然有效。这个函数比之前的版本更加灵活,它可以接受具有相同生命周期的任意两个字符串切片,并返回一个具有相同生命周期的字符串切片,这样就保证了返回的引用不会超出输入参数的生命周期。在 Rust 中,编译器会在编译时检查引用的生命周期,确保引用的有效性。引用,其生命周期被限定在函数内部,当函数结束时,返回的引用也会被销毁,因此在。,我们可以确保返回的引用在编译时是有效的,并且不会导致悬垂引用的问题。,它们都有自己的生命周期。

2024-04-01 22:03:06 298

原创 Rust从入门到暴走(15)--- Rust的泛型数据类型

在 Rust 中,可以使用<>语法来定义泛型。x: T,y: T,在上面的例子中,Point<T>定义了一个泛型结构体Point,该结构体具有一个类型参数T,可以用来表示任意类型的坐标。

2024-04-01 20:13:48 136

原创 Rust从入门到暴走(14)--- Rust的常见集合

Rust 标准库中包含了一系列非常有用的数据结构,被称为集合(collections)。相较于其他数据类型只能代表单个值,集合可以容纳多个值。不同于内建的数组和元组类型,集合中的数据储存在堆上,这意味着在编译时不必知道数据的数量,而且数据量可以在程序运行时动态增加或减少。每种集合都有着不同的功能和成本,根据当前情况选择合适的集合类型是一项需要逐渐掌握的技能。

2024-04-01 20:04:55 266

原创 Rust从入门到暴走(13)--- Rust的错误处理机制

在 Rust 中,错误处理是一种重要的编程技术,用于处理可能出现的异常情况和错误状态。Rust 提供了强大而灵活的错误处理机制,允许开发者处理不可恢复的错误并采取适当的措施来处理可恢复的错误。

2024-04-01 19:37:02 288

空空如也

空空如也

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

TA关注的人

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