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

[Day 57] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈的零知識證明技術

一、引言

隨著區塊鏈技術的不斷發展,如何在保護用戶隱私的同時確保數據的完整性和可信度成為了研究的焦點。零知識證明(Zero-Knowledge Proof,ZKP)技術就是其中的一項關鍵技術,它允許一方在不洩露任何額外信息的情況下,向另一方證明其擁有某種知識或信息。本文將深入探討零知識證明技術的基本原理、在區塊鏈中的應用場景,並通過實際代碼示例演示如何實現零知識證明。

二、零知識證明的基本概念

1. 零知識證明的定義

零知識證明是一種密碼學技術,允許證明者(Prover)在不洩露任何其他信息的情況下向驗證者(Verifier)證明某個聲明是真實的。這一過程必須滿足以下三個特性:

  • 完備性:如果聲明是真實的,誠實的驗證者會被說服。
  • 正直性:如果聲明是虛假的,誠實的驗證者不會被說服。
  • 零知識性:除非驗證者已經知道聲明的內容,否則他無法從證明過程中學到任何額外的信息。

2. 零知識證明的歷史背景

零知識證明技術最早由Goldwasser、Micali和Rackoff於1985年提出,他們首次提出了一個基於數學難題的互動式證明系統。隨著時間的推移,這一技術被逐步應用到各種場景中,尤其是在區塊鏈領域。

三、零知識證明技術的工作原理

1. 基於代數結構的零知識證明

零知識證明的核心思想是利用代數結構,尤其是模運算中的離散對數問題(Discrete Logarithm Problem, DLP),來構建證明。例如,證明者可以證明其知道一個值 xxx 使得 y=gxmod  py = g^x \mod py=gxmodp,但不直接透露 xxx 的具體值。

2. 交互式零知識證明

在交互式零知識證明中,證明者和驗證者之間會進行多輪的互動。每一輪互動中,證明者會向驗證者展示一部分信息,驗證者則會提出挑戰,最後驗證者根據所有信息判斷證明是否成立。

3. 非交互式零知識證明

非交互式零知識證明(Non-Interactive Zero-Knowledge, NIZK)是一種特殊的零知識證明形式,該技術在區塊鏈中尤為重要。它允許證明者通過單一訊息向驗證者展示其證明,這使得它非常適合區塊鏈這種無需交互的分布式系統。

四、零知識證明在區塊鏈中的應用

1. 匿名交易

零知識證明在區塊鏈中的最典型應用之一就是匿名交易。Zcash就是一個採用了零知識證明技術的加密貨幣,它利用了名為zk-SNARKs(零知識簡潔非交互式知識論證)的技術來隱藏交易的詳細信息。

2. 隱私保護

零知識證明技術能夠在保證隱私的前提下驗證交易,這使得區塊鏈上的數據隱私保護變得更加可行。許多基於區塊鏈的身份驗證系統也採用了零知識證明技術,以確保用戶的隱私不會被洩露。

3. 智能合約驗證

智能合約中的數據通常需要驗證其真實性,但不一定需要洩露具體內容。零知識證明技術可以用來在不洩露合約具體執行邏輯的情況下,證明其正確性。

五、零知識證明技術的實際代碼示例

1. 簡單的零知識證明實現

以下是一個簡單的零知識證明代碼示例,用於證明某人知道一個數字的平方根。

import random# 設置公共參數
p = 23 # 大質數
g = 5  # 基數# 設置秘密值
x = 4  # 我們知道的秘密數字
y = pow(g, x, p)  # 計算 y = g^x mod p# 證明階段
r = random.randint(1, p-1)  # 生成隨機數 r
t = pow(g, r, p)  # 計算 t = g^r mod p# 模擬驗證者的挑戰
challenge = random.randint(0, 1)  # 驗證者選擇 0 或 1# 證明者計算響應
if challenge == 0:response = r
else:response = (r + x) % (p-1)# 驗證者檢查證明
if challenge == 0:assert pow(g, response, p) == t
else:assert pow(g, response, p) == (t * y) % pprint("證明成功!")

代碼解釋

  • 公共參數設置:我們選擇了一個大質數 ppp 和一個基數 ggg,這些都是公開的信息。
  • 秘密值:我們設置了一個秘密值 xxx,並計算 y=gxmod  py = g^x \mod py=gxmodp,這是我們需要證明的值。
  • 證明階段:證明者生成一個隨機數 rrr 並計算 t=grmod  pt = g^r \mod pt=grmodp。
  • 驗證者的挑戰:驗證者隨機選擇 0 或 1,作為對證明者的挑戰。
  • 證明者的響應:根據挑戰值的不同,證明者計算不同的響應值 responseresponseresponse。
  • 驗證者的驗證:驗證者根據響應值檢查證明是否成立。

2. zk-SNARKs 的簡單實現示例

以下是一個基於 zk-SNARKs 的簡單例子,用於展示零知識證明在更複雜場景中的應用。這裡使用 pycryptodome 庫來實現一個簡單的 zk-SNARKs 例子。

from pycryptodome.PublicKey import RSA
from pycryptodome.Signature import pkcs1_15
from pycryptodome.Hash import SHA256# 設置 RSA 密鑰對
key = RSA.generate(2048)
public_key = key.publickey()# 設置秘密值和公共參數
secret_value = b'zkp secret'
h = SHA256.new(secret_value)# 證明者生成證明
signature = pkcs1_15.new(key).sign(h)# 驗證者驗證證明
try:pkcs1_15.new(public_key).verify(h, signature)print("證明成功,驗證通過!")
except (ValueError, TypeError):print("證明失敗,驗證不通過!")

代碼解釋

  • 密鑰對生成:我們生成了一對 RSA 密鑰,用於後續的簽名和驗證。
  • 秘密值設置:證明者設定了一個秘密值 secret_value,並使用 SHA-256 哈希算法計算其哈希值。
  • 證明生成:證明者使用 RSA 私鑰對哈希值進行簽名,生成證明。
  • 驗證證明:驗證者使用 RSA 公鑰對證明進行驗證,如果證明有效,則驗證通過。

3. zk-SNARKs 在區塊鏈中的應用示例

在區塊鏈中,zk-SNARKs 被用於構建匿名交易。以下是一個基於 zk-SNARKs 構建匿名交易的示例代碼,使用 libsnark 庫來演示 zk-SNARKs 的實現。

#include <libsnark/common/default_types/r1cs_ppzksnark_pp.hpp>
#include <libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/examples/run_r1cs_ppzksnark.hpp>using namespace libsnark;int main() {// 初始化 SNARK 的參數default_r1cs_ppzksnark_pp::init_public_params();// 構建一個簡單的 R1CS 約束系統r1cs_example<libff::Fr<default_r1cs_ppzksnark_pp>> example = generate_r1cs_example_with_field_input<libff::Fr<default_r1cs_ppzksnark_pp>>(100, 10);// 執行鍵生成、證明生成和驗證const r1cs_ppzksnark_keypair<default_r1cs_ppzksnark_pp> keypair = generate_r1cs_ppzksnark_keypair<default_r1cs_ppzksnark_pp>(example.constraint_system);const r1cs_ppzksnark_proof<default_r1cs_ppzksnark_pp> proof = generate_r1cs_ppzksnark_proof(keypair.pk, example.primary_input, example.auxiliary_input);const bool verification = verify_r1cs_ppzksnark_proof(keypair.vk, example.primary_input, proof);std::cout << "SNARK 證明驗證結果: " << verification << std::endl;return 0;
}

代碼解釋

  • 初始化參數:首先初始化 zk-SNARKs 的公共參數。
  • 構建約束系統:生成一個 R1CS(Rank-1 Constraint System),它是 zk-SNARKs 中的基本數學表示,用於表示需要證明的命題。
  • 鍵生成與證明生成:根據約束系統生成一對密鑰(包括證明鍵和驗證鍵),並使用證明鍵生成證明。
  • 驗證證明:使用驗證鍵來驗證生成的證明,並輸出驗證結果。

六、零知識證明技術的優點與挑戰

1. 優點

  • 隱私保護:零知識證明允許在不洩露敏感信息的情況下進行驗證,非常適合需要高隱私保護的場景。
  • 安全性:基於數學難題的零知識證明具有極高的安全性,難以破解。
  • 靈活性:零知識證明技術可以應用於多種場景,如身份驗證、智能合約、隱私交易等。

2. 挑戰

  • 計算複雜度:零知識證明的計算量通常較大,可能影響系統的性能。
  • 實施成本:由於技術的複雜性,零知識證明的實施成本較高,需要專業的技術支持。
  • 標準化:目前零知識證明技術尚未完全標準化,不同平台之間的兼容性可能存在問題。

七、結論

零知識證明技術在區塊鏈領域具有廣泛的應用前景,特別是在保護用戶隱私和數據安全方面具有不可替代的作用。隨著技術的不斷進步,零知識證明的應用將更加廣泛,並且可能成為未來區塊鏈技術發展的重要方向之一。

相关文章:

[Day 57] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈的零知識證明技術 一、引言 隨著區塊鏈技術的不斷發展&#xff0c;如何在保護用戶隱私的同時確保數據的完整性和可信度成為了研究的焦點。零知識證明&#xff08;Zero-Knowledge Proof&#xff0c;ZKP&#xff09;技術就是其中的一項關鍵技術&#xff0c;它允許一方在不…...

06结构型设计模式——代理模式

一、代理模式简介 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff08;GoF书中解释结构型设计模式&#xff1a;一种用来处理类或对象、模块的组合关系的模式&#xff09;&#xff0c;代理模式是其中的一种&#xff0c;它可以为其他对象提供一种代…...

《深入浅出多模态》(九)多模态经典模型:MiniGPT-v2、MiniGPT5

🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于 前沿论文解读、资料共享、行业最新动态以、实践教程、求职…...

调试和优化大型深度学习模型 - 0 技术介绍

调试和优化大型深度学习模型 - 0 技术介绍 flyfish LLaMA Factory LLaMA Factory 是一个简单易用且高效的大型语言模型&#xff08;Large Language Model&#xff09;训练与微调平台。通过 LLaMA Factory&#xff0c;可以在无需编写任何代码的前提下&#xff0c;在本地完成上…...

华为S3700交换机配置VLAN的方法​

1.VLAN的详细介绍 VLAN(Virtual Local Area Network)即虚拟局域网,是一种将一个物理的局域网在逻辑上划分成多个广播域的技术。 1.1基本概念 1)作用: 隔离广播域:通过将网络划分为不同的 VLAN,广播帧只会在同一 VLAN 内传播,而不会扩散到其他 VLAN 中,从而有效…...

学懂C++(三十八):深入详解C++网络编程:套接字(Socket)开发技术

目录 一、概述与基础概念 1.1 套接字&#xff08;Socket&#xff09;概念 1.2 底层原理与网络协议 1.2.1 网络协议 1.2.2 套接字工作原理 二、C套接字编程核心技术 2.1 套接字编程的基本步骤 2.2 套接字编程详细实现 2.2.1 创建套接字 2.2.2 绑定地址 2.2.3 监听和接…...

SpringBoot-配置加载顺序

目录 前言 样例 内部配置加载顺序 ​ 样例 小结 前言 我之前写的配置文件&#xff0c;都是放在resources文件夹&#xff0c;根据当前目录下&#xff0c;优先级的高低&#xff0c;判断谁先被加载。但实际开发中&#xff0c;我们写的配置文件并不是&#xff0c;都放…...

第八周:机器学习笔记

第八周机器学习笔记 摘要Abstract机器学习1. 鱼和熊掌和可兼得的机器学习1.1 Deep network v.s. Fat network 2. 为什么用来验证集结果还是不好&#xff1f; Pytorch学习1. 卷积层代码实战2. 最大池化层代码实战3. 非线性激活层代码实战 总结 摘要 本周学习对李宏毅机器学习视…...

音乐怎么剪切掉一部分?5个方法,轻松学会音频分割!(2024全新)

音乐怎么剪切掉一部分&#xff1f;音频文件是娱乐和创作的重要基础。音频在我们日常生活中发挥着重要作用&#xff0c;从音乐播放列表到有趣的视频&#xff0c;它无处不在。无论是音乐爱好者还是内容创作者&#xff0c;我们常常需要对音频文件进行剪切和编辑。想象一下&#xf…...

洛谷 CF295D Greg and Caves

题目来源于&#xff1a;洛谷 题目本质&#xff1a;动态规划dp&#xff0c;枚举 解题思路&#xff1a;将整个洞分成两半&#xff0c;一半递增&#xff0c;一半递减。我们分别 DP 求值&#xff0c;最后合并。状态转移方程为&#xff1a;dpi,j​k2∑j​(j−k1)dpi−1,k​1。枚举极…...

【图像处理】在图像处理算法开发中,有哪些常见的主观评价指标和客观评价指标?

主观评价指标 在图像处理算法开发中&#xff0c;主观评价指标依赖于观察者的个人感受和判断&#xff0c;通常用于评估图像的视觉质量。以下是一些常见的主观评价指标&#xff1a; 平均意见分数 (Mean Opinion Score, MOS)&#xff1a;通过收集多个评价者的评分并计算平均值来评…...

从零开始学cv-6:图像的灰度变换

文章目录 一&#xff0c;简介&#xff1a;二、图像的线性变换三、分段线性变换四&#xff0c;非线性变换4.1 对数变换4.2 Gamma变换 五&#xff0c;效果: 一&#xff0c;简介&#xff1a; 图像灰度变换涉及对图像中每个像素的灰度值执行数学运算&#xff0c;进而调整图像的视觉…...

使用Apache POI和POI-OOXML实现word模板文档自动填充功能

最近接到一个新的需求&#xff0c;用户创建好模板文件保存到模板库&#xff0c;然后使用在线文档编辑器打开模板时&#xff0c;将系统数据填充到模板文件并生成新的word文件&#xff0c;然后在线编辑&#xff0c;研究使用Apache POI和POI-OOXML实现了这个功能。 Maven依赖 <…...

【HarmonyOS NEXT星河版开发学习】综合测试案例-各平台评论部分

目录 前言 功能展示 整体页面布局 最新和最热 写评论 点赞功能 界面构建 初始数据的准备 列表项部分的渲染 底部区域 index部分 知识点概述 List组件 List组件简介 ListItem组件详解 ListItemGroup组件介绍 ForEach循环渲染 列表分割线设置 列表排列方向设…...

垂直行业数字化表现抢眼 亚信科技全年利润展望乐观

大数据产业创新服务媒体 ——聚焦数据 改变商业 2024年8月14日&#xff0c;亚信科技控股有限公司&#xff08;股票代码&#xff1a;01675.HK&#xff09;公布了公司截至2024年6月30日的中期业绩。 财报数据显示&#xff0c;2024年上半年&#xff0c;亚信科技的营业收入为人民币…...

EmguCV学习笔记 VB.Net 4.1 颜色变换

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 教程VB.net版本请访问&#xff1a;EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问&#xff1a;EmguCV学习笔记 C# 目录-CSD…...

【MySQL进阶之路】表结构的操作

目录 创建表 查看表 查看数据库有哪些表 查看表结构 查看表的详细信息 修改表 表的重命名 添加一列 修改某一列的属性 删除某一列 对列进行重命名 删除表 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 【MySQL进阶之路】MySQL基础——从零认识MySQL-CSDN博客 创…...

3分钟搞定PDF转PPT!你一定要知道的3款转换神器!

在数字办公成为主流的当下&#xff0c;我们每天会收到各类基于数字化方式存储的办公文档&#xff0c;如PDF、PPT、Word、Excel文档等。 日常处理这些文档时&#xff0c;经常需要在不同格式的文档之间进行切换和转换&#xff0c;其中将PDF转换为PPT就是一个非常高频的需求&…...

【EasyExcel】导出excel-设置动态表头并导出数据

需求背景&#xff1a; 导出excel的设置某些表头动态导出(可以根据筛选条件或一些属性的数据量)&#xff0c;方便导出后用户查看想看的信息。 一、技术选型&#xff1a; easyExcel的原生数据处理 二、方案设计&#xff1a; 根据EasyExcel支持的表头List<List<String>…...

深入探索 Elasticsearch 8:新特性与核心原理剖析(上)

深入探索 Elasticsearch 8&#xff1a;新特性与核心原理剖析 目录 一、引言 &#xff08;二&#xff09;版本 8 的重要意义 二、Elasticsearch 8 的新特性 三、Elasticsearch 的核心原理 一、引言 &#xff08;一&#xff09;Elasticsearch 简介 在大数据处理和搜索领域…...

瑜伽馆预约小程序,在线预约,提高商业价值

随着大众生活质量的提高&#xff0c;对休闲运动的关注逐渐加大&#xff0c;瑜伽作为一种身心放松、改善体态的运动&#xff0c;深受女性用户的喜爱。目前&#xff0c;各大瑜伽馆开始结合数字化&#xff0c;建立了新型的线上小程序&#xff0c;帮助大众快速预约体验瑜伽&#xf…...

Python--数据类型转换

在Python中&#xff0c;数据类型的转换是一个常见的操作&#xff0c;涉及将一种数据类型转换为另一种数据类型。Python提供了多种内置函数用于执行这种转换&#xff0c;如 int()、str()、float()、list()、tuple()、set()、dict() 等。下面详细讨论Python的基本数据类型及它们之…...

域控ntdsutil修改架构、域命名、PDC、RID、结构主机

#笔记记录# FSMO盒修改 1、提示访问特权不够&#xff0c;不能执行该操作&#xff0c;0x2098 清除缓存账号密码并修改新架构管理员账号密码即可。 背景&#xff1a;更替架构主机、域命名主机 C:\Windows\system32>ntdsutil ntdsutil: roles fsmo maintenance: ?? …...

解决 Swift 6 全局变量不能满足并发安全(concurrency-safe)读写的问题

概述 WWDC 24 终于在 Swift 十岁生日发布了全新的 Swift 6。这不仅意味着 Swift 进入了全新的“大”版本时代&#xff0c;而且 Swift 编译器终于做到了并发代码执行的“绝对安全”。 不过&#xff0c;从 Swift 5 一步迈入“新时代”的小伙伴们可能对新的并发检查有些许“水土不…...

迈入退休生活,全职开发ue独立游戏上架steam

决定退休了。算了算睡后收入&#xff0c;也可以达到每月一万一&#xff0c;正好可以养家糊口。 既然退休了&#xff0c;那就做些想做的事情&#xff0c;别人养花养草&#xff0c;而我打算开发独立游戏上架steam。 一&#xff0c;盘点下目前的技术体系。 1&#xff0c;图形学底…...

什么是光伏气象站——仁科测控

【仁科测控&#xff0c;品质保障】光伏气象站&#xff0c;‌这一专门为光伏发电系统设计的监测设备&#xff0c;‌其核心能力在于精确且实时地捕捉那些对光伏发电效率产生关键影响的气象因素。‌这些数据不仅为评估光伏电站的发电性能提供了重要依据&#xff0c;‌更是优化运维…...

webshell免杀--免杀入门

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理webshell免杀的一些基础思路 入门级&#xff0c;不是很深入&#xff0c;主要是整理相关概念 免杀对象 1.各类杀毒软件 类似360&#xff0c;火绒等&#xff0c;查杀己方webshell的软件。 2.各类流量…...

Linux---02---系统目录及文件基本操作命令

课程回顾 操作系统 虚拟机安装 本章重点 Linux系统目录结构 常用命令 熟练区分Linux下各层目录的作用 熟练掌握Linux的常用命令&#xff08;文件命令、时间命令等&#xff09; 一、Linux系统目录结构 1.1 目录结构 /&#xff1a; 根目录&#xff0c;一般根目录下只存放…...

CSP-J/S第一轮初赛模拟赛试题

本模拟试题为本人自创&#xff0c;由于发布在 LG 所以就直接放入链接。 非经允许&#xff0c;不得转载。 本套模拟题只供大家练习使用&#xff0c;不保证难度与真实 CSP-J/S 完全符合。 本模拟赛为专业CSP类型的模拟赛&#xff0c;不存在错题、超出知识的题目。 CSP-J/S 20…...

LangGPT结构化提示词

LangGPT是Language For GPT-like LLMs的简称&#xff0c;中文名为结构化提示词&#xff0c;LangGPT是一个帮助你编写高质量提示词的工具&#xff0c;理论基础是我们提出的一套模块化、标准化的提斯提编写方法论——结构化提示词。我们希望揭开提示工程的神秘面纱&#xff0c;为…...

如何为个人网站更换ssl证书

关键步骤 1&#xff0c;确认服务器类型并下载对应证书&#xff08;这个超级简单&#xff0c;阿里云现在可以下3月免费的&#xff09;&#xff1b; 2&#xff0c;本文以nginx服务为例&#xff0c;主打的就是一个简单且快速让你搞清楚实操流程&#xff1b; linux命令 ps-ef|gr…...

RabbitMQ-消息队列延迟队列一

1、安装rabbitmq 怎么安装rabbitmq请查看之前课程&#xff0c;如果已经安装&#xff0c;请略过此步。 2、创建vendor文件夹或是直接采用PHP框架 mkdir vendor 3、进入文件 cd vendor 4、安装php扩展 composer require php-amqplib/php-amqplib 5、进入上级创建dead文件…...

JavaScript中普通对象和Map对象的区别

在JavaScript中&#xff0c;普通对象&#xff08;{}&#xff09;和 Map 对象都是用于存储键值对的数据结构&#xff0c;但是他们有一些区别。 1. 键的类型 普通对象&#xff1a; 对象的键必须是字符串或 Symbol 类型。其他类型的值&#xff08;如数字、布尔值、对象等&#x…...

Liunx搭建Rustdesk远程桌面服务

1、环境准备 Linux&#xff1a;centos7.9 rustdesk server安装包 很多新服务器并没有 wget 和unzip 可以通过yum自行安装下&#xff0c;如果系统中有wget但不能使用&#xff0c;直接卸载重装即可。 yum install wget wget --no-check-certificate https://github.com/rust…...

antv X6--实现节点旁添加多个text标签

前言&#xff1a;接本专栏上篇文章&#xff0c;实现一个新需求&#xff0c;如有不懂的可先去看新手教程 需求描述&#xff1a;如何在节点旁添加多个标签&#xff0c;如下图所示&#xff1a; 实现该需求目前我只想到两种方法&#xff1a; 方法一&#xff1a;使用换行符将不同的…...

JAVA--多线程

Java中的多线程是指在同一个Java虚拟机&#xff08;JVM&#xff09;中并发执行多个线程的能力。线程是程序执行的最小单元&#xff0c;Java提供了丰富的API来创建和管理线程。以下是Java中实现多线程的一些关键概念和方法&#xff1a; Thread 类&#xff1a;Java提供了Thread类…...

ADB-DROM

# 读硬件信息 adb shell "cat /sys/block/mmcblk0/device/name" # MT6767/MT6768/MT6769/MT6762/MT6765/MT6761... # 频率档位 # 固定频率 adb shell "echo 0 > /sys/devices/platform/10012000.dvfsrc/helio-dvfsrc/dvfsrc_force_vcore_dvfs_opp" # …...

mysql 之 explain

1. 查看表的创建字段以及索引情况 show create table user_recommend; 2. 创建索引的原则&#xff1a;列的值比较离散 像性别字段&#xff0c;只有男&#xff0c;女 或者其他&#xff1b;expose字段&#xff0c;只有1分发&#xff0c;0不可分发。就不适宜在这种字段上添加索引…...

CentOS迁移案例 | 保障轨道交通安全、发挥基础设施效能,麒麟信安操作系统支撑某市轨道交通畅行无忧

为缓解城市交通拥堵难题&#xff0c;某市轨道交通公司计划新建一条贯穿城市关键区域、沿路设立20座站点的轨道交通线路&#xff0c;并基于麒麟信安操作系统构建轨道交通信号系统。 轨道交通信号系统是列车核心控制系统&#xff0c;负责列车运行的自动化控制&#xff0c;及对整…...

获取操作系统的信息(Go语言)

在 Go 语言中&#xff0c;你可以使用 runtime 和 os 包来查看操作系统的信息。以下是一些常见的操作系统信息获取方法&#xff1a; 1. 获取操作系统类型和架构信息 Go 的 runtime 包提供了基本的操作系统和架构信息&#xff1a; package mainimport ("fmt""r…...

【论文阅读】HuatuoGPT-II, One-stage Training for Medical Adaption of LLMs

总体概要 本文深入探讨了一款专为医疗领域设计的大规模语言模型——HuatuoGPT-II的创新、性能与应用。HuatuoGPT-II采用统一的单阶段训练流程&#xff0c;将传统的继续预训练和监督微调整合&#xff0c;有效解决了医疗数据的异质性问题&#xff0c;包括语言、体裁和格式差异&a…...

Excel表列序号

题目 给定一个Excel表格中的列名称&#xff0c;返回其相应的列序号。 例如&#xff0c; A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...示例 1: 输入: "A" 输出: 1示例 2: 输入: "AB" 输出: 28示例 3: 输入: "ZY&…...

IOS 03 纯代码封装自定义View控件

本节将通过纯代码进行封装自定义View控件&#xff0c;以常用的设置页的item为例&#xff0c;实现UI效果如下&#xff1a; 1、创建SettingView继承自UIView import UIKitclass SettingView: UIView {} 2、重写 init() 和 required init?(coder: NSCoder) 方法 纯代码创建Set…...

比较结构加法及其逆运算

在行列可自由变换的平面上有等式 13&#xff08;3a11&#xff09;2*4a14a22*4a32*4a44*4a122*4a14 3a11在平面上可能得到6个不同的4点结构&#xff0c;这6个结构的比例为2&#xff1a;1&#xff1a;2&#xff1a;2&#xff1a;4&#xff1a;2. 现在从右向左算&#xff0c;计…...

44.【C语言】指针(重难点)(G)

目录 19.字符指针变量 *定义 *简单说明 *如果是字符串 *像数组一样指定访问常量字符串的字符 *练习 20.数组指针变量 *定义 *格式 *例子 问题1 问题2 *利用指针打印 21.二维数组传参的本质 *回顾 往期推荐 19.字符指针变量 *定义 指向字符的指针变量&#xff0c;用于存储字符…...

746. 使用最小花费爬楼梯-dp3

. - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/min-cost-climbing-stairs/description/从左向右填dp表 class Solutio…...

MPU6050详细介绍

一、MPU6050介绍 MPU6050是由三个陀螺仪和三个加速度传感器组成的6轴运动处理组件 内部主要结构&#xff1a;陀螺仪、加速度计、数字运动处理器DMP&#xff08;Digital Motion Processor&#xff09; MPU6050有两个IIC接口&#xff0c;第一IIC接口可作为主接口给单片机传输数…...

【分享】Excel的3个隐藏功能

我们在制作Excel表格的时候&#xff0c;有时候会包含一些敏感信息&#xff0c;为了确保这些数据的安全性&#xff0c;Excel提供了隐藏功能来保护工作表&#xff0c;下面小编分享3个Excel常用的隐藏功能&#xff0c;一起来看看如何设置吧&#xff01; 功能一&#xff1a;隐藏部分…...

Linux中的chown指令

chown&#xff08;change owner&#xff09;命令在 Linux 和其他类 Unix 系统中用于更改文件或目录的用户和/或组所有权。 基本用法 chown [选项] 用户名[:组名] 文件或目录 参数说明 用户名&#xff1a;指定新的文件或目录的所有者 组名&#xff1a;可选&#xff0c;指定新…...

UCOSIII内存管理机制详解

目录 前言 1. 内存管理概述 2. 内存区域&#xff08;存储区&#xff09;和内存块 3. 存储区控制块&#xff08;OS_MEM&#xff09; 4. 内存管理函数 5. 内存碎片问题 6. 注意事项 7.代码实现 7.1创建内存区域 7.2申请内存 7.3释放内存 前言 UCOSIII&#xff08;即Mi…...