.Net上真正的计算利器ILNumerics

使用ILNumerics在.Net执行计算 一.下载安装ILNumerics函数库 在http://ilnumerics.net/$Editions.html下载ILNumerics社区版压缩包,现在版本为v2.13,约27.3MB。解压缩后目录结构如图1所示。 图1 ILNumerics源码包解压内容 现在需要编译ILNumerics函数库,用VisualStudio打开工程文件ILNumerics.csproj,编译一遍, 阅读详情

            起因:前段时间写程序时需要大量的线性代数方面的运算,当时比较了几种.Net上的数学库,选择使用了Math.net,它是支持.net的一个开源数学库,提供了包括线性代数,随机数生成器,概率统计傅立叶变换等一系列库函数。那时做的矩阵运算都不超过100x100,所以程序运行起来勉强还可以接受,但后来随着数据库增长,矩阵(从数据库获取数据构造)包含的数据量逐渐超过10000,程序就卡在那里不动了。在确认的确是矩阵运算导致程序性能急剧下降后,我不得不寻找新的数学库,最终我发现了ILNumerics!Math.net有的功能它基本都有,但ILNumerics的执行性能远远超过了Math.net。

           在读了ILNumerics大量文档后,我先做了个小测试,计算大矩阵的逆矩阵,比较ILNumerics和Math.net的矩阵运算性能,结果如下图(由于我使用的计算中,矩阵求逆,转置和相乘使用较多,我仅比较了这几个,故不算严格测试,算个感性的估计吧,所以,就不给出测试代码了)。


可以看到,在计算大矩阵时,ILNumberics明显要快得多。经测试,ILNumerics在计算元素数量在千万级时仍然保持在30s以内,但Math.net的计算时间已经超过了我的耐心。

于是我正式将它用到正在开发的程序中,瞬间感到了飞的感觉。

独乐不如众乐,所以我简单介绍一下ILNumerics,希望可以帮到有需要的朋友。

--------------------------------------------*****-----------------------------------------------------------------------------**************----------------------------------------------------------------------------------------

首先是ILNumerics网站:http://ilnumerics.net/$Home.html。

然后当然要说说运行速度,大家都知道程序语言越高级,执行效率越低,所以在.net编写计算类的程序就要把性能放在首位。而ILNumerics在性能上做得相当出色。下面是来自官网(图片网址:http://ilnumerics.net/img/perfcomp_numpy_matlab_fortran_ilnumericsc_th.png)的一张图片,显示其优秀的执行性能。


ILNumerics主要在垃圾回收上下了功夫,所以运行速度甚至可以追赶本地C库函数。

另外,ILNumerics具有超强绘图功能,如果希望在程序中加入类似Matlab绘图功能的话,那么ILNumerics会是不错的选择,如下图所示(图片来自http://ilnumerics.net/$VisualExamples.html)。



还有和Matlab相似之处是,ILNumerics的矩阵运算有很多语法都和matlab很相似,使用它写相关运算时让人感觉就是在写matlab程序,这一点详细查看帮助文档就知道了。说到这里,就需要附带说一下,好软件一定要配套好文档,ILNumerics的文档是非常丰富的,让人用起来有理有据,入门迅速。

最后说一句,ILNumerics是开源软件!

我将在下一篇文章中简单介绍一下ILNumerics入门使用,以供参考。

ILnumerics资料 ILnumerics是一个十分好用的类库 对于数学运算尤其是矩阵的计算有着强大的功能 与MATLAB类库使用方式很相似 早期作为开源软件 后变为商业软件 立即下载

相关推荐

ILNumerics曲线图展示

ILNumerics.32Bit.3.1.0.1,32位,版本3.1,内含vs2010的小demo,包含所需dll。

ILNumerics 6.0.124 Crack

工业数据科学Ω578867473 ILNumerics ® 使金融、汽车和许多其他行业的工程师和科学家能够开发、部署和维护要求苛刻的技术应用程序。比以往任何时候都更快、更容易。在很短的时间内创造出更好、完全可扩展的结果——并立即推动研发创新。 计算 ILNumerics 数学、基于数组的语言极大地简化了 numpy 和 Matlab 风格的生产级 .NET 算法的编写。以最快的方式创建和运行您的项目。您专注于数学——剩下的交给我们! 可视化 将交互式 3D 可视化添加到您的 .NET 应用程序.

控件与插件之大全 1638

.net科学计算库ILNumerics

ILNumerics是一种NET框架的高性能数学库,它简化了各种数学算法的使用,优化到了C和FORTRAN的速度。它的独立版本ILView,已经宣布支持REPL的3D可视化工具,可以运行在.NET/Windows和Mono/Linux环境里。

ILNumerics项目的应用之线性方程

      ILNumerics是一个开源的数值项目,一种NET框架的高性能数学库,它简化了各种数学算法的使用,优化到了C和FORTRAN的速度。现在它提供了一个支持“任何CPU”的NuGet包。它的独立版本ILView,已经宣布支持REPL的3D可视化工具,可以运行在.NET/Windows和Mono/Linux环境里。支持线性方程计算,数值计算,机器学习。             在...

weixin_34168880的博客 388

HeatMapDemos_src.zip_HeadMap_ilnumerics_热力图

HeadMap热力图模型,采用ILNumerics控件开发,可用于Winform版本界面热力图开发参考资料

MiniOSD DIY记

最近迷上了航模,研究了很多东西,感觉路走的长了还是适当要停下脚步休息下总结下。 这次DIY的是一块OSD设备,主要用于航模图传的叠加显示,原理也很简单就是atmel atmega328p+MAX7456芯片,网上卖的成品基本上都是一个原理图。 原理图 我按照我自己的需要做了适当的更改,去掉了DC-DC电路,直接用5V输入,因为摄像头都是5V的,所以DC-DC不是很有必要,体积上更加小了点, 打...

memoff的博客 8519

探索高性能计算的未来 —— 深入介绍MKL.NET

探索高性能计算的未来 —— 深入介绍MKL.NET 在这个数据驱动的时代,高性能计算库是科研和工业界的强大工具。今天,我们来探讨一个将Intel MKL(Math Kernel Library)的强大力量带入.NET世界的开源宝藏——MKL.NET。 项目介绍 MKL.NET是一个简洁的跨平台.NET API,旨在无缝对接Intel MKL的强大数学运算功能。它精心设计,保持了与C开发者参考文档...

gitblog_00051的博客 505

基于LSTM算法的股票预测详解

一、需求 给定几个已知的股市因素(开盘、收盘、最高、最低、成交量、成交额)及各因素对应的大量数据,训练一个该股票的涨跌趋势的预测模型。并在给定的测试数据的条件下求出接下来的涨跌趋势。即得到下图中的label值。-1代表跌、1代表涨。 二、分析 1、LSTM简单介绍 LSTM这个算法是专门训练有时间序列信息的数据的,即这些数据不仅按照时间递增的顺序排布,并且前后的数据都有着很强的联系。个人认为与马尔可夫的思想差不多,即后面的值由前面的值来决定。本次需求是要根据已知的股市数据来分析某个时间段的涨跌趋势,并预测

Zhang_713的博客 1万+

数学运算

JMathLib是一个用于计算复杂数学表达式并能够图形化显示计算结果的Java开源类库。它是Matlab、Octave、FreeMat、Scilab的一个克隆,但完全采用纯Java实现。   .Net上真正的计算利器ILNumerics http://blog.csdn.net/qjpcpu/article/details/8066372   dmath(tpmath):Math li...

iteye_9067的博客 219

Cocos Creator发布微信小游戏:深度定制与去除默认加载页面的实践指南

本文详细介绍了如何使用Cocos Creator发布微信小游戏时去除默认加载页面的实践方法。通过修改构建配置和重写启动逻辑,开发者可以自定义加载体验,提升品牌一致性。文章还提供了进阶优化方案和常见问题解决方案,帮助开发者实现更专业的微信小游戏发布流程。

weixin_27972919的博客 568

基于PLC的全自动洗衣机控制系统+控制程序

本设计使用PLC控制系统替换了传统的继电器控制系统,实现了全自动洗衣机在硬件方面的提升,丰富了全自动洗衣机在软件方面的功能,提高了全自动洗衣机的洗衣效率,基本可以满足用户的洗衣需求。

zzzz114231的博客 8955

ILNumerics 5.5.X Crack-工业数据科学

工业数据科学 在 C# 和 .NET 中:简单的。快速地。可靠的。 工业数据科学 ????578867473知道ILNumerics ® 使金融、汽车和许多其他行业的工程师和科学家能够开发、部署和维护要求苛刻的技术应用程序。比以往任何时候都更快、更容易。在很短的时间内创造更好的、完全可扩展的结果——并立即推动研发创新。 计算 ILNumerics 数学、Ω578867473基于数组的语言极大地简化了 numpy 和 Matlab 风格的生产级 .NET 算法的编写。以最快的方式创建和运行您的项目

控件与插件之大全 1083

《QGIS快速入门与应用基础》239:指北针样式选择(预设/自定义)

系统解析指北针设计的核心规范与实操方法。文章首先强调行业规范红线,包括强制要求N字标注、箭头辨识度等关键要素,通过正误示例对比强化合规意识。其次详细讲解QGIS内置预设样式的分类应用,提供极简箭头、标准三角箭头等4类样式的选型对照表,并配图说明适用场景。最后介绍从基础微调到SVG导入的进阶自定义方法,帮助用户实现从合规到专业的样式设计。全文贯穿"合规优先、可读为本、美观为辅"原则,配有详细操作截图与规范对照表,适合从GIS新手到专业制图人员参考。

LuckyHanMo的博客 528

c# 生成svg_使用C#和ILNumerics在SVG中生成复杂的数学可视化

c# 生成svgI was recently turned on to the ILNumerics library. It's a high performance math library for .NET developers that my math skills can barely comprehend. It has a clean and elegant syntax, but m...

cunfuteng7334的博客 1334

高通平台Android 无线 UWB 开发全解析:UWB系统设计、天线与校准全流程指南

为使 UWB 系统达到目标性能,在整个开发流程中遵循一套设计最佳实践至关重要。系统架构:需基于飞行时间(ToF)功能的基准方案(POR)定义系统框图,这是整体系统架构的基础。天线布局:天线位置对性能影响极大,需尽可能贴近 UWB 芯片,以减少信号损耗、保持高传输效率。器件选型:需谨慎选择元器件,推荐使用单刀双掷(SPDT)或双刀双掷(DPDT)开关、UWB 带通滤波器射频同轴测试接头,以保障信号传输路径与测试能力。原理图优化:原理图开发阶段,走线损耗优化极为关键。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 171

SAP 未清PO数量 = 采购订单数量 - 已收货数量

本文介绍了SAP系统中查询未清PO数量的6种方法:1.标准采购报表(ME2L/ME2M/ME2N)适合业务用户快速查询;2.物料需求报表(MD04)可查看单个物料的供需情况;3.SQVI快速查询器提供自定义字段的灵活性;4.ABAP报表适合开发人员处理复杂逻辑;5.SAPQuery经配置后可供业务用户使用;6.BI/HANA方案适合大数据量分析。每种方法各有优缺点,用户可根据自身技术水平和具体需求选择,日常查询推荐使用标准采购报表ME2L/ME2M。

金牌架构师 1854

matlab第三方控件,第三方控件介绍

ILNumercisILNumerics是一种NET框架的高性能数学库,它简化了各种数学算法的使用,使用起来和MATLAB类似。另外,ILNumerics具有超强绘图功能,如果希望在程序中加入类似MATLAB绘图功能可考虑。IocompIocomp ActiveX/VCL 是一套用于工业控制的仪表盘控件,适用于 ActiveX 或 VCL 开发环境。Iocomp 工业仪表盘控件包(VCL版)包括多...

weixin_32243075的博客 928

【nvidia-B200 生产环境】NVIDIA 570.124.06+Cuda12.8 Ubuntu22.04 nccl-test 一键部署脚本(免修改复制即用)

目录1. 初始化与日志记录2. 安装基础工具与配置更新3. NVIDIA 驱动安装 570.124.064. 安装 Mellanox OFED 24.10-2.1.8.05. 安装 CUDA 12.86. 安装 NCCL 和测试7. 配置 rc.local 和其他优化8. B200 单独步骤9. 最终测试与重启10. 完整生产脚本,复制即可直接使用总结 功能: 设置日志目录和日志文件路径。 使用 命令将标准输出和错误输出同时写入日志文件和终端。 记录脚本开始时间,并计算开始的秒数

jundao1997的专栏 2797

开源数学库

C/C++,java开源数学计算库   有限元分析、数值计算、三维建模、信号处理、性能分析、仿真分析。。。这些或多或少与我们常用的软件息息相关,假如有一天你只需要这些大型软件系统的某一个很有限的功能,你是不是也要因此再用一用那动辄几个g的软件呢?其实我觉得如果系统不是很大,不是很复杂,我们个人完全有可能自己去编写代码来实现这些‘’有限的功能‘’。别以为这是件很困难的事情,我总以为大...

an4455的博客 1443

深度学习工具包 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")

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ILnumerics资料下载介绍

ILnumerics资料下载介绍 去发现同类优质开源项目:https://gitcode.com/ ILnumerics资料为您提供了一个强大的数学运算类库,特别在矩阵计算方面表现出色。ILnumerics的使用方式与MATLAB类库类似,使得进行数学运算更加简便高效。 ILnumerics最初作为开源软件受到广大用户的喜爱,随后转变为商业软件。这份资料包含了ILnumerics的相关文档和教程,...

gitblog_06770的博客 353

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

常见的C/C++开源数值计算库

常见的C/C++开源数值计算库介绍

罗伯特祥的博客 3465

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

开源数学库 Numerical Python

NumPy(Numerical Python的简称)是一个基于Python的开源数学库,它提供了了一个易于使用的数组对象和一系列操作数组的函数,可以高效地进行大规模数值运算。

汉阳Hann's Home 3324

ilnumerics 7.4.40 FOR .NET

ILNumerics Compuiting Engine brings efficiency for numerical array codes to .NET. Its array based mathematical language is fully compatible to Matlab and numpy. Its algorithms run on any architecture supporting .NET. And its execution speed exceeds the spe

控件与插件之大全 728

.Net平台科学计算库Math.Net Numerics

     C#数值计算实现处理麻烦,如今发现一个库,可以大大提高C#数值能力,为处理数据提供极大便捷,这个库叫Math.NET Numerics。该库旨在为科学,工程和日常使用中的数值计算提供方法和算法。涵盖的主题包括特殊函数,线性代数,概率模型,随机数,插值,积分,回归,优化问题等。 Visual studio 2012安装这个库的时候,先更新Nuget,Nuget是C#的程序包管理器,许多扩...

Abaqus3_0的博客 4996

C、C++开源的数学库有哪些

C和C++中有许多开源的数学库,涵盖了从基础数学运算到高级数学计算、数值分析等多种功能。

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 3413
上一篇: 心静自得
下一篇: 使用ILNumerics在.Net执行计算
qjpcpu
博客等级 码龄15年 59粉丝 106原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值