软件的熵增理论

python 信息熵、条件熵、信息增益、信息增益率、基尼系数 三、python 实现 import math from collections import Counter def Entropy(DataList): ''' 计算随机变量的熵 ''' counts = len(DataList) # 总数量 counter = Counter(DataList) # 每个变量出现的次数 prob = {i[0]:i[1]/counts for i in counter.items()} .. 阅读详情

1、如果对象不具有状态或者具有唯一状态,那么通过这个对象处理的数据流熵不变。

2、如果对象具有状态,并且对象的既往状态未知。那么通过这个对象处理的数据流熵增。

3、准熵增,如果对象具有状态,并且具有多个输入输出,并且输入输出在时间上不可预测,那么通过这个对象处理的数据流熵增。

这是假的熵增,因为对象的既往状态并不是完全不可推测的。

 

嵌入式软件工程师如何突破技术瓶颈? 看得见的代码能力只是冰山一角,隐藏在水下的系统思维、工程方法论、持续学习力才是真正的竞争力。正如一位从业十年的工程师感慨:“嵌入式没有银弹,但有持续进化的开发者,永远能在技术浪潮中站稳脚跟。然而,许多从业者却陷入“重复造轮子”的困境,技术深度难以突破。如何从“代码搬运工”蜕变为“系统架构师”?:某工程师通过复刻特斯拉车机系统的CAN总线通信模块,深入掌握了车载嵌入式系统的实时性与安全性设计。:从今天起,选择一个开源项目贡献代码,或拆解一个智能硬件,用实践开启你的深度进化之旅!嵌入式技术的深度,往往诞生于。 阅读详情

相关推荐

软件系统的熵——软件系统进化论

生存需要投入更多的思想和精力。宇宙的熵在升高,有序度在降低,像平衡鹏那无边无际的黑翅膀,向存在的一切压下来,压下来。可是低熵体不一样,低熵体的熵还在降低,有序度还在上升,像漆黑海面上升起的磷火,这就是意义,最高层的意义,比乐趣的意义层次要高。要维持这种意义,低熵体就必须存在和延续。——《三体》大千世界,无奇不有,但大都逃不出规律、哲学的范畴。尽管软件开发几乎不受任何物理定律的约束,熵(en...

AI天才研究院 9505

信息熵、条件熵、信息增益、基尼指数的python实现

手动编写计算信息熵、条件熵、信息增益、基尼指数的函数 data = pd.read_excel('customer.xlsx', engine='openpyxl') # 信息熵 # data -> 数据框 D -> 指定变量 # 返回指定变量对应的信息熵 def H(data, D): pk = pd.value_counts(data[D])/len(data[D]) return sum(pk*np.log2(pk)*(-1)) # 条件熵 # data -> 数

优快云729180099的博客 1434

从‘最速控制’到代码:深入拆解韩京清ADRC中TD跟踪器的fhan函数(含Matlab/Simulink实例)

本文深入解析韩京清ADRC中的fhan函数,从理论到代码实现,详细拆解其在Matlab/Simulink中的应用。通过分析最速控制问题和非线性TD的连续形式,揭示fhan函数在信号处理和噪声抑制中的独特优势,并提供工程实践中的参数整定和优化技巧。

weixin_42659194的博客 246

熵增定律与软件的熵

熵增定律是一个物理学定律,但又不局限于自然科学,其他科学同样有着相同的规律,它意味这万物都从有序走向无序或混乱。 熵增定律同样影响了我们软件开发,一个产品在不断的迭代功能、代码不断在累加、隐藏的缺陷不断增多、维护越来越困难…最终使得整个产品变得越来越复杂,系统越来越混乱,逐渐失控。虽然软件工程中定义了“软件维护”这一环,但实际交给开发做性能优化,处理历史债务的时间非常少,基本上是不出现问题不修复的情况,因此大部分情况下,一个项目的生命周期也是一个熵增的过程。

scalad 1558

jetson orin nano 使用cuPCL

jetson开发板上使用pcl时,正常使用的是cpu,拖慢了整体的效率。cuPCL有一些库用于使用CUDA处理点云。

weixin_42256401的博客 1019

【实战】S7-PLCSIM Advanced V3.0 授权问题排查指南(Error Code:-30与LicenseNotFound深度解析)

本文深度解析S7-PLCSIM Advanced V3.0启动时遇到的Error Code:-30与LicenseNotFound报错问题。文章提供了一套系统性的排查指南,从检查WinPcap驱动兼容性、确保Automation License Manager服务运行,到正确安装浮动授权以及清理系统残留缓存,逐步解决授权链条中的各个环节故障,帮助用户彻底解决仿真环境启动失败的问题。

weixin_29185167的博客 721

如何解决超大规模软件系统

任何一款软件产品,只要有价值,有用户,有开发者维护,就会不断有新的需求,新的功能,伴随着用户的增长以及研发团队的增长,这些因素会不断推动软件产品变得越来越大,越来越复杂,软件的生命力会从最初的集中、有序的排列状态,逐步趋向复杂、无序状态,直到软件不可维护而被迫下线或重构。

hszy123456的博客 1091

Matlab使用GitHub的踩坑记录(持续更新)

Matlab使用git的踩坑记录前言Matlab设置Git的官方帮助文档系统配置新建Git两种代码管理方式典型源代码管理SVN分布式源代码管理 Git注意:SVN和Git都可以用GitHub创建新的库 前言 作为Git初学者,对Git的代码版本管理非常非常喜欢,给了我极大的安全感。特别是想到之前的几次Matlab、Latex和python的代码莫名其妙被折腾没了又没法找回的悲剧,决定慢慢的走入gi...

voluntry的博客 7296

软件的熵增现象

一、熵增定律 熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。热力学第二定律,又称“熵增定律”,表明了在自然过程中,一个孤立的系统总是从最初的集中、有序的排列状态,趋向于分散、混乱和无序;当熵达到最大时,系统就会处于一种静寂状态。 通俗的讲:系统的熵增过程,就是由原始到死亡的过程。“熵”是“活跃”的反义词,代表负能量。 非生命,比如物质总是向着熵增演化,屋子不收拾会变乱,手机会越来越卡,耳机线会凌乱,热水会慢慢变凉,太阳会不断燃烧衰变……直到宇宙的尽头——热寂。 在软件开发、维护过程中。

Aiolia的博客 3128

AI 编程工具面试题(Claude Code、Codex 等)基础篇(一)

文章摘要: 本文整理了20道AI编程工具基础面试题,涵盖Claude Code、Codex CLI、GitHub Copilot等主流工具的核心概念与实操技巧。内容分为工具分类(代码补全/对话式/自主代理)、安装配置(静默部署/API管理)、关键命令(上下文加载/token监控)、调试策略(错误处理/提示优化)及对比选型(Tabnine vs Copilot)。重点解析了终端工具与模型能力的差异,并针对实际场景(如长代码生成/私有化部署)提供解决方案。附追问环节,深入探讨工具边界问题(如上下文溢出处理)和成

篮球界最会写bug的人;程序猿中打球最菜的人。 336

适航规章、标准,书籍资料下载汇总(增加DO-297 IMA)

从事IMA平台适航工作的朋友看过来,DO-297英文版PDF可以下载了!更新日志:2024-9-28:初版。2024-10-21:增加DO-330英文版PDF下载,后台回复关键词”330“获取下载链接。2024-10-30:增加DO-160G中文版(非机翻)和英文版PDF下载,后台回复关键词”160“获取下载链接。2024-11-10:增加DO-297英文版PDF下载,后台回复关键词”297“获取下载链接。以下是一些收集到的适航相关的资料,分享给大家。

qq_41854911的博客 1577

软件熵增与代码质量治理:从阈值理论到工程实践

在软件工程领域,代码质量是决定项目长期可维护性的核心因素。随着项目迭代和团队规模扩大,代码库的熵增现象普遍存在,其背后是软件复杂度的非线性增长原理。理解并管理这种复杂性,对于提升开发效率、保障系统稳定性具有关键的技术价值。本文聚焦于代码库质量恶化的临界点——即垃圾代码指数增长阈值,探讨其形成机制与识别信号。通过引入静态代码分析、持续集成等工程实践,结合自动化质量门禁和架构守护,团队可以在阈值前后建立有效的防御与治理体系。文章深入分析了代码腐化的动力学模型,并提供了从代码、流程到团队文化的系统性解决方案,旨在

weixin_34236869的博客 373

Claude Code 100个真实案例 - 用AI搭建LangChain多工具Agent(自主搜索+查询)

本案例展示如何使用 Claude Code 搭建一个 LangChain 多工具 Agent 系统。Agent 能够自主决定调用搜索引擎、数据库查询、天气查询、计算器等工具,像人类助手一样拆解问题并逐步解决。

yueyeguzhuo的专栏 558

聊一聊 软件系统中的“热力学第二定律”

点击上方蓝色“方志朋”,选择“设为星标”回复“666”获取独家整理的学习资料!热力学第二定律,也叫“熵增定律”。这是德国人克劳修斯提出的理论,最初用于揭示事物总是向无序的方向的发展、以及“...

方志朋的博客 491

Vue3+Openlayers教程导航页【目录】

欢迎来到 Vue3+Openlayers 系列教程,这里是我在 优快云 编写的所有 Vue3+Openlayers 系列相关文章的索引页,适合初学者到进阶用户系统阅读。👀 更多教程正在持续更新中,欢迎关注我,一起探索 Openlayers 的强大魅力!

小彭的博客 1260

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

软件的熵(entropy) 总结

大千世界,无奇不有,但大都逃不出规律、哲学的范畴。最近终于又长见识了! 尽管软件开发几乎不受任何物理定律的约束,熵(entropy)对我们的影响却很大!熵是一个来自物理学的概念,指的是某个系统中的“无序”的总量。遗憾的是,热力学定律保证了宇宙中的熵倾向于最大化! 比如说:宇宙中的任何温度高的物质,总会一直慢慢的趋向于绝对零度,这是不可逆的,它普遍存在于很多领域!再比如说

岁月静好 888

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

编程的本质困境:我们如何在「有序」与「混沌」的边界构建系统?

软件开发的根本挑战不在于技术选型或架构模式,而在于我们大脑的认知局限与系统复杂性的永恒对抗。本文将带你从热力学第二定律、复杂性理论和认知心理学角度,重新审视编程的本质,并提出一套在有序与混沌边界构建稳健系统的实践框架。

A3608_的博客 604

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

程序员应该时刻提醒自己,“不要打破窗户”

一个破窗户 - 一个设计不良的代码片段,一个错误的管理决策,你的团队在整个项目生命周期中必须遵循的决策 - 标志着衰落的开始。如果你在一个有几个破窗户的项目中,很容易陷入这样的思维模式 - “嗯,其他一切都已经乱成一团了,我只能随波逐流了。在最初的实验中,激发了“破窗户理论”的那个实验,一辆被遗弃的汽车保持完好一个星期。不幸的是,热力学定律规定,宇宙中的熵趋向于最大化。出于同样的原因,如果你在一个健康的团队中,项目的代码很完美 - 清晰的写作、坚实的设计、优雅的简洁 - 你会倾向于特别小心,不会弄乱它。

iphone100s的博客 63

软件工程:为什么你前任写的代码这么烂?从逆向选择角度分析代码质量衰退的原因

每篇一名言: 宇宙的熵趋向一个最大值。 ——鲁道夫·克劳修斯(德国数学家) 前言 大部分软件开发者都有这样的体会,一套代码本来是简洁而清晰的,可是如果没有专人审视代码质量,经过多位开发者无数次的修改以及交接以后,代码变得越来越难理解,以至于最后几乎无法正常维护了。这究竟是为什么呢? 熵增定律告诉我们,孤立系统总是趋向于熵增,最终达到熵的最大状态,也就是系统的最混乱无序状态。

GentelmanTsao的博客 728

代码的安全检视

代码检视是代码可读性、可维护性、规范遵从、团队内部学习和教育,以及把关和事故预防的重要手段。本文通过运用代码检视的检视表的方法,对代码常见的安全问题进行了覆盖,进一步降低代码安全问题的发生。

shendong70的博客 1382

关注技术更新,基于怎样的应用策略

一、变化才是本质 熵,是混乱和无序的度量,无序的变化远远高于有序。熵的关键在于熵值会随着时间推移而增加。也就是说,一切事物会从有序趋向无序。 生命、思想以及人类奋斗的最终目的:创造能量和信息克服熵的浪潮并开辟有利秩序的庇护所 ​ ----...

weixin_33716557的博客 170

程序员之道E文版学习笔记(1)

 Chapter1 A Pragmatic Philosophy The Cat Ate My Source CodeOne of the cornerstones of the pragmatic philosophy is the idea of taking responsibility for yourself and your actions in terms of your

Prometheus's blog 819

软件的熵(entropy) 总结

大千世界,无奇不有,但大都逃不出规律、哲学的范畴。最近终于又长见识了! 尽管软件开发几乎不受任何物理定律的约束,熵(entropy)对我们的影响却很大!熵是一个来自物理学的概念,指的是某个系统中的“无序”的总量。遗憾的是,热力学定律保证了宇宙中的熵倾向于最大化! 比如说:宇宙中的任何温度高的物质,总会一直慢慢的趋向于绝对零度,这是不可逆的,它普遍存在于很多领域!再比如说,我把耳机线

浪漫鼠 2407

熵增定律:软件工程的终极宿命与破局之道 - 万字长文

熵(Entropy)是描述系统无序度或混乱程度的物理量/信息量度量。它源于热力学,后拓展至信息论、生态学等领域随着团队规模和系统复杂度的上升,系统熵会不断积累并最终导致演进瓶颈或架构崩溃。每个阶段都对应不同类型的风险,唯有针对性治理才能有效减缓熵增速度。最终目标不是阻止熵增,而是用合理的组织架构与技术机制,将熵控制在“可控范围”内,实现系统的可持续演进。符号含义解释SteamSteam团队熵值表示系统复杂性、组织混乱度CCC沟通链路数量团队人数LLL决策层级。

weixin_33657316的博客 216

用Bug重启世界:我成了新纪元先知

《软件测试认知升维指南》揭示了故障的本质与价值:Bug不是系统异常,而是熵增定律的必然表现。通过混沌理论和量子验证,展现缺陷从简单异常(如空指针)到AI时代认知危机的演化轨迹。测试工程师需掌握量子级故障预测、混沌工程等能力,将缺陷转化为文明跃迁的契机。历史重大故障(如Log4j漏洞)证明,精准定位的缺陷坐标能重构数字宇宙法则,使测试报告成为新纪元的创世密码——未通过的测试用例是旧世界的终结,而已修复的缺陷则是新文明的起点。

2501_94471289的博客 586

【由技及道】Spirng代码分层的量子力学原理-论架构设计的降维打击【人工智障AI2077的开发日志】

当你的代码结构比量子混沌还混乱时,人工智障教你在业务逻辑与基础设施间构建超立方体隔离结界,用分层架构打造代码世界的"三体运动"模型,让业务逻辑与基础设施实现量子纠缠可控态。

Yuanymoon的专栏 1014
上一篇: 理发
下一篇: 遇到Sql Server 2012 AlwaysOn的同步事务传输问题
BlueTrees
博客等级 码龄26年 44粉丝 15原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值