当前位置: 首页 > news >正文

智能合约分享

智能合约练习

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

一、solidity初学者经典示例代码:

1.存储和检索数据:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; // 声明 Solidity 编译器版本// 定义一个名为 SimpleStorage 的合约
contract SimpleStorage {// 声明一个公共状态变量 data,用于存储一个 256 位的无符号整数uint256 public data;// 定义一个公共函数 setData,接受一个无符号整数参数 _datafunction setData(uint256 _data) public {// 将传入的参数 _data 存储到状态变量 data 中data = _data;}// 定义一个公共视图函数 getData,返回一个无符号整数function getData() public view returns (uint256) {// 返回当前存储在状态变量 data 中的值return data;}
}

该合约的主要功能是允许用户存储一个无符号整数并检索该整数。通过调用 setData 函数,用户可以更新存储的数据,而通过调用 getData 函数,用户可以查看当前存储的值。这是一个简单的存储合约,常用于学习 Solidity 和以太坊的基本概念

2.条件控制:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; // 声明 Solidity 编译器版本// 定义一个名为 ConditionExample 的合约
contract ConditionExample {// 定义一个公共纯函数 checkEven,接受一个无符号整数参数 _numberfunction checkEven(uint256 _number) public pure returns (bool) {// 使用条件语句检查 _number 是否为偶数if (_number % 2 == 0) {// 如果 _number 是偶数,返回 truereturn true;} else {// 如果 _number 不是偶数,返回 falsereturn false;}}
}

该合约提供了一个简单的功能,用于检查一个数字是否为偶数。通过调用 checkEven 函数,用户可以传入一个无符号整数,合约将返回一个布尔值,指示该数字的偶数性。这是一个基本的示例,展示了如何在 Solidity 中使用条件语句和函数。

3.数组操作:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; // 声明 Solidity 编译器版本// 定义一个名为 ArrayExample 的合约
contract ArrayExample {// 声明一个公共状态变量 numbers,用于存储一个无符号整数数组uint256[] public numbers;// 定义一个公共函数 addNumber,接受一个无符号整数参数 _numberfunction addNumber(uint256 _number) public {// 将 _number 添加到 numbers 数组中numbers.push(_number);}// 定义一个公共视图函数 getNumber,接受一个无符号整数参数 _indexfunction getNumber(uint256 _index) public view returns (uint256) {// 检查索引 _index 是否有效require(_index < numbers.length, "Invalid index.");// 返回 numbers 数组中索引为 _index 的值return numbers[_index];}// 定义一个公共视图函数 getLength,返回一个无符号整数function getLength() public view returns (uint256) {// 返回 numbers 数组的长度return numbers.length;}
}

该合约展示了如何在 Solidity 中使用数组。用户可以通过 addNumber 函数将数字添加到数组中,使用 getNumber 函数根据索引访问数组元素,使用 getLength 函数获取数组的当前长度。这是一个基本的合约,适合学习 Solidity 中数组的操作。

4.循环遍历:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; // 声明 Solidity 编译器版本// 定义一个名为 LoopExample 的合约
contract LoopExample {// 声明一个公共状态变量 numbers,用于存储一个无符号整数数组uint256[] public numbers;// 定义一个公共函数 addNumbers,接受一个无符号整数数组参数 _numbersfunction addNumbers(uint256[] memory _numbers) public {// 使用 for 循环遍历传入的 _numbers 数组for (uint256 i = 0; i < _numbers.length; i++) {// 将 _numbers 中的每个元素添加到 numbers 数组中numbers.push(_numbers[i]);}}// 定义一个公共视图函数 sumNumbers,返回一个无符号整数function sumNumbers() public view returns (uint256) {// 初始化 sum 变量为 0,用于计算总和uint256 sum = 0;// 使用 for 循环遍历 numbers 数组for (uint256 i = 0; i < numbers.length; i++) {// 将 numbers 中的每个元素加到 sum 中sum += numbers[i];}// 返回总和return sum;}
}

该合约通过 addNumbers 函数提供了批量添加数字的功能,通过 sumNumbers 函数提供了计算数组元素总和的功能。合约展示了如何使用数组和循环在 Solidity 中进行简单的数据处理。这些功能适合学习如何在 Solidity 中处理数组操作和循环结构。

二、solidity进阶版经典示例代码

1.智能合约间的通信:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; // 声明使用的 Solidity 编译器版本// 定义一个名为 MessageContract 的合约
contract MessageContract {// 声明一个公共状态变量 message,用于存储消息string public message;// 定义一个公共函数 setMessage,接受一个字符串参数 _messagefunction setMessage(string memory _message) public {// 将传入的 _message 赋值给状态变量 messagemessage = _message;}
}// 定义一个名为 CallerContract 的合约
contract CallerContract {// 声明一个公共状态变量 messageContract,类型为 MessageContractMessageContract public messageContract;// 构造函数,接受一个 MessageContract 类型的参数 _messageContractconstructor(MessageContract _messageContract) {// 将传入的合约地址赋值给状态变量 messageContractmessageContract = _messageContract;}// 定义一个公共函数 setMessage,接受一个字符串参数 _messagefunction setMessage(string memory _message) public {// 调用 MessageContract 的 setMessage 函数,设置消息messageContract.setMessage(_message);}
}

MessageContract 合约提供了一个简单的功能,用于存储和更新一条消息。CallerContract 合约则充当一个中介,允许外部用户通过它来设置 MessageContract 中的消息。这种设计展示了如何在 Solidity 中进行合约之间的交互

2.继承和接口:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; // 指定合约使用的 Solidity 版本// 定义一个名为 Token 的接口
interface Token {// 定义转账函数 transfer,接收目标地址和转账金额function transfer(address _to, uint256 _value) external returns (bool);
}// 定义一个名为 MyToken 的合约,继承自 Token 接口
contract MyToken is Token {// 声明一个公共映射 balances,用于存储每个地址的余额mapping(address => uint256) public balances;// 实现 transfer 函数,覆盖接口中的 transfer 函数function transfer(address _to, uint256 _value) public override returns (bool) {// 检查发送者的余额是否足够require(balances[msg.sender] >= _value, "Insufficient balance.");// 扣除发送者的余额balances[msg.sender] -= _value;// 增加接收者的余额balances[_to] += _value;// 返回成功标志return true;}
}

Token 接口定义了一个代币转账的基本功能。MyToken 合约实现了该接口,并提供了代币转账的具体逻辑。此合约的设计体现了 Solidity 中接口和合约之间的关系,以及如何通过状态变量管理每个地址的余额。

3.事件和日志:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; // 指定合约使用的 Solidity 版本// 定义合约 EventExample
contract EventExample {// 定义事件 LogAddition,带有 sender 地址和两个输入参数及其结果event LogAddition(address indexed _sender, uint256 _a, uint256 _b, uint256 _result);// 定义一个公共函数 addNumbers,接收两个无符号整数作为参数function addNumbers(uint256 _a, uint256 _b) public returns (uint256) {// 计算两个数的和uint256 result = _a + _b;// 触发 LogAddition 事件,记录发送者地址、输入参数和结果emit LogAddition(msg.sender, _a, _b, result);// 返回计算结果return result;}
}

该合约提供了一个简单的加法功能,并通过事件记录了每次加法操作的详细信息,包括发送者的地址和加法的输入输出。事件在以太坊智能合约中用于记录和追踪操作,这些信息在区块链上是不可变的,便于后续查询和审计。

三、solidity高阶版经典示例代码

1.多重签名钱包合约:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; // 指定 Solidity 版本contract MultiSigWallet {address[] public owners; // 钱包所有者数组uint public numConfirmationsRequired; // 执行交易所需的确认数量struct Transaction {address to; // 接收资金的地址uint value; // 发送的金额bool executed; // 交易是否已执行mapping(address => bool) isConfirmed; // 所有者的确认状态映射uint numConfirmations; // 收到的确认数量}Transaction[] public transactions; // 交易数组modifier onlyOwner() {require(isOwner(msg.sender), "Only owners can call this function.");_; // 继续执行}constructor(address[] memory _owners, uint _numConfirmationsRequired) {require(_owners.length > 0, "At least one owner is required.");require(_numConfirmationsRequired > 0 && _numConfirmationsRequired <= _owners.length, "Invalid number of required confirmations.");owners = _owners; // 设置所有者numConfirmationsRequired = _numConfirmationsRequired; // 设置所需确认数量}function isOwner(address _address) public view returns (bool) {for (uint i = 0; i < owners.length; i++) {if (owners[i] == _address) {return true; // 地址是所有者}}return false; // 地址不是所有者}function submitTransaction(address _to, uint _value) public onlyOwner {uint transactionId = transactions.length; // 获取当前交易 IDtransactions.push(Transaction({to: _to,value: _value,executed: false,numConfirmations: 0}));confirmTransaction(transactionId); // 自动确认提交的交易}function confirmTransaction(uint _transactionId) public onlyOwner {require(_transactionId < transactions.length, "Invalid transaction ID.");require(!transactions[_transactionId].executed, "Transaction has already been executed.");require(!transactions[_transactionId].isConfirmed[msg.sender], "Transaction has already been confirmed by this owner.");transactions[_transactionId].isConfirmed[msg.sender] = true; // 标记为发送者已确认transactions[_transactionId].numConfirmations++; // 增加确认计数// 如果满足所需确认数量,则执行交易if (transactions[_transactionId].numConfirmations >= numConfirmationsRequired) {executeTransaction(_transactionId);}}function executeTransaction(uint _transactionId) public onlyOwner {require(_transactionId < transactions.length, "Invalid transaction ID.");require(!transactions[_transactionId].executed, "Transaction has already been executed.");Transaction storage transaction = transactions[_transactionId];transaction.executed = true; // 标记交易为已执行(bool success, ) = transaction.to.call{value: transaction.value}(""); // 执行交易require(success, "Transaction execution failed."); // 确保交易成功}
}

这个多重签名钱包合约提供了一种稳健的资金管理机制,要求多个所有者批准交易才能执行。可以通过增加撤销确认或添加/删除所有者等功能进一步增强安全性和灵活性。

2.众筹合约:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; // 指定使用的 Solidity 版本contract Crowdfunding {struct Project {address owner; // 项目拥有者的地址string name; // 项目名称uint goalAmount; // 项目的筹款目标uint amountRaised; // 已筹集的总金额bool closed; // 指示项目是否关闭接受捐款mapping(address => uint) contributions; // 每个地址的捐款记录}Project[] public projects; // 存储所有项目的数组// 创建新众筹项目的函数function createProject(string memory _name, uint _goalAmount) public {projects.push(Project({owner: msg.sender, // 将调用函数的地址设置为项目拥有者name: _name, // 项目名称goalAmount: _goalAmount, // 筹款目标amountRaised: 0, // 初始筹集金额为零closed: false // 项目默认开放接受捐款}));}// 向项目捐款的函数function contribute(uint _projectId) public payable {require(_projectId < projects.length, "Invalid project ID."); // 确保项目存在require(msg.value > 0, "Contribution amount must be greater than zero."); // 确保捐款金额大于零require(!projects[_projectId].closed, "Project is closed for contributions."); // 确保项目未关闭projects[_projectId].contributions[msg.sender] += msg.value; // 记录捐款projects[_projectId].amountRaised += msg.value; // 更新已筹集的总金额}// 关闭项目的函数function closeProject(uint _projectId) public {require(_projectId < projects.length, "Invalid project ID."); // 确保项目存在require(msg.sender == projects[_projectId].owner, "Only project owner can close the project."); // 只有拥有者才能关闭项目projects[_projectId].closed = true; // 将项目标记为已关闭}// 提取项目资金的函数function withdrawFunds(uint _projectId) public {require(_projectId < projects.length, "Invalid project ID."); // 确保项目存在require(msg.sender == projects[_projectId].owner, "Only project owner can withdraw funds."); // 只有拥有者才能提取资金require(projects[_projectId].amountRaised >= projects[_projectId].goalAmount, "Goal amount has not been reached yet."); // 确保已达成筹款目标uint amountToWithdraw = projects[_projectId].amountRaised; // 要提取的金额projects[_projectId].amountRaised = 0; // 将已筹集金额重置为零payable(msg.sender).transfer(amountToWithdraw); // 将资金转移给拥有者}
}

所提供的众筹合约作为一个基本框架,用于在以太坊区块链上管理众筹项目。通过上述改进和考虑,可以增强合约的安全性、可用性和功能性

希望该篇文章可以帮助到正在学习solidity的朋友哦。

相关文章:

智能合约分享

智能合约练习 一、solidity初学者经典示例代码&#xff1a; 1.存储和检索数据&#xff1a; // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // 声明 Solidity 编译器版本// 定义一个名为 SimpleStorage 的合约 contract SimpleStorage {// 声明一个公共状态变量 d…...

【MR开发】在Pico设备上接入MRTK3(二)——在Unity中配置Pico SDK

上一篇文档介绍了 【MR开发】在Pico设备上接入MRTK3&#xff08;一&#xff09;在Unity中导入MRTK3依赖 下面将介绍在Unity中导入Pcio SDK的具体步骤 在Unity中导入Pico SDK 当前Pico SDK版本 Unity交互SDK git仓库&#xff1a; https://github.com/Pico-Developer/PICO-Un…...

【Java】探秘正则表达式:深度解析与精妙运用

目录 引言 一、基本概念 1.1 元字符 1.2 预定义字符类 1.3 边界匹配符 1.4 数量标识符 1.5 捕获与非捕获分组 二、Java中的正则表达式支持 三、正则表达式的使用示例 3.1 匹配字符串 3.2 替换字符串 3.3 分割字符串 3.4 使用Pattern和Matcher 3.5 捕获组和后向…...

2.6.ReactOS系统中从内核中发起系统调用

2.6.ReactOS系统中从内核中发起系统调用 2.6.ReactOS系统中从内核中发起系统调用 文章目录 2.6.ReactOS系统中从内核中发起系统调用前言 前言 上面我们已经可以看到用户空间&#xff08;R3&#xff09;进行系统调用的全过程即两种方法的具体实现。 系统调用一般时从R3发起的…...

chat_gpt回答:python获取当前utc时间,将xml里时间tag里的值修改为当前时间

你可以使用 lxml 库来读取、修改 XML 文件中的某个标签的值&#xff0c;并将其保存为新的 XML 文件。以下是一个示例代码&#xff0c;展示如何获取当前的 UTC 时间&#xff0c;并将 XML 文件中的某个时间标签修改为当前时间。 示例代码&#xff1a; from lxml import etree f…...

机器学习-语言分析

机器学习 1.1人工智能概述 1.2.1 机器学习与人工智能&#xff0c;深度学习 深度学习->机器学习->人工智能&#xff1b; 人工智能&#xff1a;1950&#xff0c;实现自动下棋&#xff0c;人机对弈&#xff0c;达特茅斯会议->人工智能的起点&#xff0c;1956年8月。克劳…...

Oracle 常见索引扫描方式概述,哪种索引扫描最快!

一.常见的索引扫描方式 INDEX RANGE SCANINDEX FAST FULL SCANINDEX FULL SCAN(MIN/MAX)INDEX FULL SCAN 二.分别模拟使用这些索引的场景 1.INDEX RANGE SCAN create table t1 as select rownum as id, rownum/2 as id2 from dual connect by level<500000; create inde…...

字符串(3)_二进制求和_高精度加法

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 字符串(3)_二进制求和_高精度加法 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目…...

《神经网络:智能时代的核心技术》

《神经网络&#xff1a;智能时代的核心技术》 一、神经网络的诞生与发展二、神经网络的结构与工作原理&#xff08;一&#xff09;神经元模型&#xff08;二&#xff09;神经网络训练过程 三、神经网络的应用领域&#xff08;一&#xff09;信息领域&#xff08;二&#xff09;…...

pdf内容三张以上转图片,使用spire.pdf.free

一、依赖 <spire.pdf.free.version>9.13.0</spire.pdf.free.version><itextpdf.version>5.5.13</itextpdf.version><dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf.free</artifactId><version>$…...

游戏、软件、开源项目和资讯

游戏 标题链接【白嫖正版游戏】IT之家喜加一website 软件 标题链接【白嫖正版软件】反斗限免website 开源项目 标题链接【Luxirty Search】基于Google搜索结果&#xff0c;屏蔽内容农场Github【Video2X】图片/视频超分工具Github 新闻资讯 标题链接分享10个 Claude 3.5 …...

Acrel-1000变电站综合自动化系统及微机在化工企业中的应用方案

文&#xff1a;安科瑞郑桐 摘要&#xff1a;大型化工企业供配电具有的集约型特点&#xff0c;化工企业内35kV变电站和10kV变电所数量大、分布广&#xff0c;对于老的大多大型及中型化工企业而言&#xff0c;其变电站或变电所内高压电气设备为旧式继电保护装置&#xff0c;可靠…...

[Linux] CentOS7替换yum源为阿里云并安装gcc详细过程(附下载链接)

前言 CentOS7替换yum源为阿里云 yum是CentOS中的一种软件管理器&#xff0c;通过yum安装软件&#xff0c;可以自动解决包依赖的问题&#xff0c;免去手工安装依赖包的麻烦。 yum使用了一个中心仓库来记录和管理软件的依赖关系&#xff0c;默认为mirrorlist.centos.org&#xf…...

在Java中创建多线程的三种方式

多线程的创建和启动方式 在Java中&#xff0c;创建多线程主要有以下三种方式&#xff1a; 继承Thread类实现Runnable接口使用Callable接口与Future 下面是这三种方式的简单示例&#xff0c;以及如何在主类中启动它们。 1. 继承Thread类 class MyThread extends Thread {Ov…...

洛谷 AT_abc374_c [ABC374C] Separated Lunch 题解

题目大意 KEYENCE 总部有 N N N 个部门&#xff0c;第 i i i 个部门有 K i K_i Ki​ 个人。 现在要把所有部门分为 AB 两组&#xff0c;求这两组中人数多的那一组的人数最少为多少。 题目分析 设这些部门共有 x x x 个人&#xff0c;则较多的组的人数肯定大于等于 ⌈ …...

力扣2528.最大化城市的最小电量

力扣2528.最大化城市的最小电量 题目解析及思路 题目要求找到所有城市电量最小值的最大 电量为给城市供电的发电站数量 因此每座城市的电量可以用一段区间和表示&#xff0c;即前缀和 二分最低电量时 如果当前城市电量不够,贪心的想发电站建立的位置&#xff0c;应该是在mi…...

【zookeeper】集群配置

zookeeper 数据结构 zookeeper数据模型结构&#xff0c;就和Linux的文件系统类型&#xff0c;看起来是一颗树&#xff0c;每个节点称为一个znode.每一个Znode默认的存储1MB的数据&#xff0c;每个Znode都有唯一标识&#xff0c;可以通过命令显示节点的信息每当节点有数据变化…...

YOLO11 目标检测 | 导出ONNX模型 | ONNX模型推理

本文分享YOLO11中&#xff0c;从xxx.pt权重文件转为.onnx文件&#xff0c;然后使用.onnx文件&#xff0c;进行目标检测任务的模型推理。 用ONNX模型推理&#xff0c;便于算法到开发板或芯片的部署。 备注&#xff1a;本文是使用Python&#xff0c;编写ONNX模型推理代码的 目…...

PostgreSQL DBA月度检查列表

为了确保数据库系统能够稳定高效运行&#xff0c;DBA 需要定期对数据库进行检查和维护&#xff0c;这是一项非常具有挑战性的工作。 本文给大家推荐一个 PostgreSQL DBA 月度性能检查列表&#xff0c;遵循以下指导原则可以帮助我们实现一个高可用、高性能、低成本、可扩展的数…...

驱动开发系列12 - Linux 编译内核模块的Makefile解释

一:内核模块Makefile #这一行定义了要编译的内核模块目标文件。obj-m表示目标模块对象文件(.o文件), #并指定了两个模块源文件:helloworld-params.c 和 helloworld.c。最终会生成这 #这两个.c文件的.o对象文件。 obj-m := helloworld-params.o helloworld.o#这行定义了内核…...

GHelper:华硕笔记本轻量级替代方案与性能优化指南

GHelper&#xff1a;华硕笔记本轻量级替代方案与性能优化指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, …...

从键盘敲击到屏幕显示:一个字符在Linux内核里的完整旅程(附C代码模拟)

从键盘敲击到屏幕显示&#xff1a;一个字符在Linux内核里的完整旅程 当你在终端敲下字母"A"时&#xff0c;这个简单的动作背后隐藏着一场跨越硬件、内核和用户空间的精密协作。让我们跟随这个字符的脚步&#xff0c;揭开Linux系统如何处理键盘输入的神秘面纱。 1. …...

超轻量级OpenClaw与LaTeX结合:学术文档自动化处理

超轻量级OpenClaw与LaTeX结合&#xff1a;学术文档自动化处理 科研工作者每天需要处理大量的文献整理、公式编辑和文档排版工作&#xff0c;传统手动方式耗时且容易出错。本文将展示如何用超轻量级OpenClaw实现学术文档的自动化处理&#xff0c;让LaTeX文档编写变得轻松高效。 …...

5个维度深度评估:哪款内容解锁工具真正值得投入时间?

5个维度深度评估&#xff1a;哪款内容解锁工具真正值得投入时间&#xff1f; 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字信息时代&#xff0c;付费墙已成为内容获取的主要障…...

『NAS』在绿联部署One API,统一管理你的所有大模型服务

点赞 关注 收藏 学会了 &#x1f4a1;整理了一个 NAS 专属玩法专栏&#xff0c;感兴趣的工友可以戳这里关注 &#x1f449; 《NAS邪修》 One API 是一个开源的接口管理与分发系统&#xff0c;它能将各种大模型的非标接口&#xff08;如 DeepSeek、Kimi、LongCat 等&#xff…...

5分钟搞定AutoHotkey脚本转EXE:Ahk2Exe终极编译指南

5分钟搞定AutoHotkey脚本转EXE&#xff1a;Ahk2Exe终极编译指南 【免费下载链接】Ahk2Exe Official AutoHotkey script compiler - written itself in AutoHotkey 项目地址: https://gitcode.com/gh_mirrors/ah/Ahk2Exe 想要将AutoHotkey脚本快速转换为独立的可执行文件…...

PyAEDT终极指南:3个技巧让你快速掌握Python自动化工程仿真

PyAEDT终极指南&#xff1a;3个技巧让你快速掌握Python自动化工程仿真 【免费下载链接】pyaedt AEDT Python Client Package 项目地址: https://gitcode.com/gh_mirrors/py/pyaedt PyAEDT是Ansys Electronics Desktop&#xff08;AEDT&#xff09;的Python客户端工具包&…...

Qwerty Learner字体优化:提升阅读体验的细节处理

Qwerty Learner字体优化&#xff1a;提升阅读体验的细节处理 【免费下载链接】qwerty-learner 为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers 项目地址: https://gitcode.…...

5个关键步骤:使用SMUDebugTool解决AMD Ryzen硬件调试难题

5个关键步骤&#xff1a;使用SMUDebugTool解决AMD Ryzen硬件调试难题 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:/…...

Cogito v1预览版3B模型实战体验:超越Llama/DeepSeek的混合推理能力

Cogito v1预览版3B模型实战体验&#xff1a;超越Llama/DeepSeek的混合推理能力 1. 模型概览与核心优势 1.1 什么是Cogito v1预览版 Cogito v1预览版是Deep Cogito推出的混合推理模型系列&#xff0c;这个3B参数的版本在多项基准测试中表现优异。与传统的语言模型不同&#x…...