Other

深度学习记录以及感悟

已完成 Coursera - 吴恩达 - 深度学习专项课程 完成了其中四个主要课程,讲的比较广且浅。看完感觉就记住了概念的名字,但是具体是什么随着时间的过去,也没有用到就忘的差不多了。感觉没啥用。 学习中 Bilibili - 李宏毅2021/2022春机器学习课程 待完成 Bilibili - 刘二大人 - PyTorch深度学习实践 Bilibili - 跟李沐学AI - 动手学习深度学习

VBA中十六进制转换问题

VBA语言中,数字表示的方法还有八进制、十六进制、科学计数法。例如 Dim a As Integer Dim b As Integer a = &O111 b = &HA 对于科学计数法,如果书写代码时录入 a = 1.2E-3,VBA编辑器会自动改写为0.0012 预先了解的英语知识 二进制BIN、八进制OCT、十进制DEC、十六进制HEX 十进制数字转换为八进制、十六进制、字符串 VBA内置函数库下面Conversion类中,有OCT、HEX等函数,用于将任何形式的数字转换为字符串。例如 ?VBA.Conversion.Hex(10)将得到字符串A,这是因为十进制的10与十六进制的A是相等的。 10=&HA 注意了,转换为其他进制,得到的结果是字符串(划重点) Sub 数字转换为其他进制() Dim d As Integer Dim o As String Dim h As String Dim s As String d = 93 o = Oct(d) h = Hex(d) s = CStr(d) Debug.Print o, h '打印结果 135 5D Debug.Print d, s '打印结果 93 93 End Sub 从上例子可以看到十进制93等于八进制的135,也等于十六进制的5D。下面继续学习

分析css,flex布局

1,管理系统的flex布局,ant-layout 控制大布局,连写has-sider改变direction-row    2,原图,flex:auto,帮助扩展剩下的,display;flex帮助下面的用flex:auto扩展,所以display和block差不多,但有flex:auto帮助他吃完,说到底两个盒子就是帮他扩展右边和下边,边界是浏览器的100% 延伸:container套一个整个container一般用100%,弹性布局的作用,是有一个固定的情况下,另外一个弹大弹小 居中: align-items: center; justify-content: center;  

如何理解先验概率与后验概率

原文 为了很好的说明这个问题,在这里举一个例子: 玩英雄联盟占到中国总人口的60%,不玩英雄联盟的人数占到40%: 为了便于数学叙述,这里我们用变量X来表示取值情况,根据概率的定义以及加法原则,我们可以写出如下表达式: P(X=玩lol)=0.6;P(X=不玩lol)=0.4,这个概率是统计得到的,或者你自身依据经验给出的一个概率值,我们称其为先验概率(prior probability); 另外玩lol中80%是男性,20%是小姐姐,不玩lol中20%是男性,80%是小姐姐,这里我用离散变量Y表示性别取值,同时写出相应的条件概率分布: P(Y=男性|X=玩lol)=0.8,P(Y=小姐姐|X=玩lol)=0.2 P(Y=男性|X=不玩lol)=0.2,P(Y=小姐姐|X=不玩lol)=0.8 那么我想问在已知玩家为男性的情况下,他是lol玩家的概率是多少: 依据贝叶斯准则可得: P(X=玩lol|Y=男性)=P(Y=男性|X=玩lol) * P(X=玩lol) [ P(Y=男性|X=玩lol) * P(X=玩lol)+P(Y=男性|X=不玩lol) * P(X=不玩lol)] 最后算出的P(X=玩lol|Y=男性)称之为X的后验概率,即它获得是在观察到事件Y发生后得到的 下面有一个很有意思的评论: 统计和实验分别代表着先验和后验,理论上所有的后天样本实验都是后验的。 解释: 先验概率是 以全事件为背景下,A事件发生的概率,P(A|Ω) 后验概率是 以新事件B为背景下,A事件发生的概率, P(A|B) 全事件一般是统计获得的,所以称为先验概率,没有实验前的概率 新事件一般是实验,如试验B,此时的事件背景从全事件变成了B,该事件B可能对A的概率有影响,那么需要对A现在的概率进行一个修正,从P(A|Ω)变成 P(A|B), 所以称 P(A|B)为后验概率,也就是试验(事件B发生)后的概率

从芯片设计到消费产品

从芯片设计到消费产品 半导体简介 半导体:现代电子产品的大脑 当点击、滑触、输入或与电子设备交谈时,希望指令能够得到正确的即时响应。 但是在这个过程中是什么在搜索、量化、优化和交付期望的结果? 在大多数情况下,是半导体。 “半导体”是在教育、研究、通信、医疗保健、交通运输、能源和其他行业中使用的成百上千万电子设备的关键组件。 当今的个人计算机、智能手机、汽车、数据中心服务器和游戏机都依靠半导体来实现核心运算和高级功能。 例如,当使用笔记本预订假期,查找餐厅推荐,播放电影或访问电子邮件时,笔记本中基于半导体的 CPU 和 GPU 将展开计算,即时将问题变成答案。 本文参考文献链接 https://www.amd.com/zh-hans/technologies/introduction-to-semiconductors https://mp.weixin.qq.com/s/RvvEB-snYXtiDyqxzcy1Lg https://mp.weixin.qq.com/s/VEehhsrD9NA2rg_qkd07Gg 什么是半导体? 由半导体材料(例如硅)制成的集成电路 (IC) 是商业和消费行业广泛使用的现代电子设备的重要组成部分。 这些电路必须能够通过电子方式开/关(就像晶体管),才能在计算机中执行基础逻辑计算。 为了实现这种近乎瞬时的开关能力,电路需要采用半导体材料(一种电阻介于导体和绝缘体之间的物质)。 半导体器件的制造需要在称为晶圆厂的专业设施中分多步进行。 开发、设计、生产、发布和服务一个半导体产品系列需要多年的行业经验和研究。 通常半导体公司必须同时应对多个处在生命周期不同阶段的产品系列。 产品发布后,有些客户合同可能规定厂商持续提供该产品长达十年左右的时间。     半导体生产是一个高度复杂的过程,需要很长的时间才能实现期望从日常设备得到的功能。 半导体的生产时间会因复杂程度不同而有所差异,不过平均来说,从最初的研究到最终成品需要 3 到 5 年的时间。 半导体产业链 随着中国半导体产业的发展,中国的半导体材料也在逐渐发生变化,已经从第一代半导体材料过渡到第三代半导体材料。本文主要分析了中国半导体材料行业的产业链,行业发展现状以及竞争格局等。 半导体材料处于半导体产业链的上游 半导体产业链具体包括上游供应、中游制造和下游应用。其中,半导体材料处于上游供应环节,材料品类繁多。半导体材料和设备是基石,是推动集成电路技术创新的引擎。 目前,半导体前端制造主要中国上市公司包括:中环股份、沪硅产业、南大光电等。半导体后端封装材料主要参与上市公司包括:三环集团、康强电子等。 半导体材料行业产业链企业区域热力地图:广东和江苏名列前茅 从区域竞争格局看,江苏和广东的半导体材料企业分布较多,其次是浙江、山东和福建等省份,也聚集着较多的半导体企业。 注:以上数据来源于企查查,通过企查查搜索“半导体材料”,筛选存续和在业的制造业企业。 从代表性上市公司分布情况来看,北京、江苏、上海、广东等地的半导体材料上市公司数量较多。 半导体材料行业园区分布:陕西最多,浙江、山东紧随其后     目前,陕西拥有的半导体材料相关产业园区数量最多,为5个,其次是浙江,山东排名第三。     半导体材料行业代表性企业产量情况 目前,半导体材料行业的上市公司主要布局于前端晶圆制造环节,这些上市企业在各自的布局领域产量情况如下:   注:统计的企业为公布相关产量数据的上市企业,未公布具体产能/产量数据的上市企业未纳入统计中。 半导体材料行业代表性企业最新投资动向 2020年以来,导体材料行业代表性企业的投资动向主要包括对子公司增资、与其他企业合资、新建项目等。导体材料行业代表性企业最新投资动向如下:   上海芯片厂商一览 提起上海的集成电路,更多的朋友应该会关注到上海在芯片制造领域的实力。在芯片制造领域,上海现在坐拥中芯国际、华虹等明星企业。就目前国内大陆地区的集成电路产业布局来看,很长一段时间内,上海将处在芯片制造领域第一的位置。

MinGW g++.exe 编译 DLL 时,导出函数名带@的问题

https://www.cnblogs.com/personnel/p/11275690.html 今天尝试用CodeBlocks写了一个简单的Dll,发现生成的 dll 文件导出的函数名后面都有一个 @xxx 从生成的 libDll2.def 中看到: EXPORTS DllMain@12 @1 Max@8 @2 SomeFunction@4 @3 funReturnStr2@4 @4 funReturnStr@0 @5 updateInt2@4 @6 updateInt@4 @7 updateStr@4 @8 至于为什么导出的函数名后面会带@的解释: _stdcall调用约定的函数会有@,后面的数字表示参数总共所占字节数,这是因为_stdcall函数需要被调用者清空堆栈,所以需要知道参数所占大小。 _cedcl调用约定的函数没有@及后面的数字,因为_cedcl调用约定的函数由调用者清空堆栈。 来源:https://bbs.csdn.net/topics/380193271 此时,如果在别的应用程序中加载这个dll,调用Max函数时,需要使用:GetProcAddress(hDll, Max@8); 这种写法,让人感觉不太爽。 那么使用 MinGW g++.exe 如何让编译后的dll中的函数名不要带@呢? 一开始,我找到这篇介绍: https://www.cnblogs.com/lichmama/p/4126323.html (MinGW(GCC)编译DLL文件) 其中提到: 发现gcc可以在链接阶段通过指定 --kill-at 参数来消除这种情况。 d:\test> #执行编译命令 d:\test>mingw32-gcc -c -DBUILD_DLL mydll.c #执行链接命令,生成mydll.dll和静态库文件libmydll.a d:\test>mingw32-gcc -shared -o mydll.dll mydll.o -Wl,--kill-at,--out-implib,libmydll.a Creating library file: libmydll.a 根据提示,我在CodeBlocks 中进行设置: 错误截图不上传 然后编译的时候,提示: mingw32-g++.exe -O2 -Wall -DBUILD_DLL -c D:\soft\c\Dll2\main.

04、支付接口

1、支付宝支付介绍 # 目前线上付款方式有多种:支付宝,微信,银联 # 以支付宝为例 # 官方提供了API接口,原来没有提供python的sdk,使用第三方 # 现在官方提供了python的sdk可以尝试使用官方sdk # 使用支付宝支付,需要是企业,要有营业执照才能申请,支付宝商家 # 测试环境,沙箱环境,即便咱们不是商家,也可以测试,以后换成真正的appid,公钥私钥--》付款就到真正的地址 # 沙箱环境:https://openhome.alipay.com/platform/appDaily.htm?tab=info # 沙箱版支付宝客户端:一个app,连得环境是测试环境,里面的钱可以一直冲,支付付到测试环境里 # 支付宝支付的场景 -https://opendocs.alipay.com/open/270/105898 # 流程 -我们自己网站有个立即购买按钮---》用户点击---》向咱们后端发送一个请求---》咱们后端生成一个没有支付的订单和支付连接(支付宝的)--->返回给前端---》前端放在支付连接的地址---》显示出支付宝支付页面---》app扫码支付,账号密码支付---》支付成功---》支付宝收到了支付---》支付宝会回调回咱们项目支付成功的页面---》页面展示用户购买成功---》支付宝还有一个post回调---》咱们项目利用post回调,修改订单状态 2、支付宝支付二次封装 结构 libs ├── iPay # aliapy二次封装包 │ ├── __init__.py # 包文件 │ ├── pem # 公钥私钥文件夹 │ │ ├── alipay_public_key.pem # 支付宝公钥文件 │ │ ├── app_private_key.pem # 应用私钥文件 │ ├── pay.py # 支付文件 └── └── settings.py # 应用配置 alipay_public_key.pem -----BEGIN PUBLIC KEY----- 拿应用公钥跟支付宝换来的支付宝公钥 -----END PUBLIC KEY----- app_private_key.

第3章 键盘输入和屏幕输出

3.1简单的键盘输入 Data Stream(数据流):数据流对象用于在各种不同的设备(如键盘和屏幕)上执行基本的数据输入和输出操作。 所谓流,就是与输入输出设备相关联的数据通信对象。 输入:cin>> ; 输出:cout <<“ ”; 3.2流操纵符 流操纵符(setw, setfill, fixed,setprecision)用于对输入和输出数据流进行修改。 当程序中出现,在圆括号中有一个参数的流操纵符时,头文件要加#include <iomanip> setw :设置数据域的宽度(数据项在屏幕上所占的列数) setw 对输出流中的下一个数据项起作用; 如果域宽设置得太小不足以显示一个数值, 那么系统会自动调整域宽,使其能够显示数据的所有位的数字; setfill :把占位符从空格改变为其他字符 setfill 把占位符从空格改变为其他字符 ; setfill 对送入输出流中的所有后继数据项都起作用; setprecision: 用于指定要显示的数据的位数 流操纵符fixed 和setprecision 将 一直对输出流中的后继数据项起 作用。 *endl:将光标移动到一个新行的起始位置,也属于流操纵符,第2章已提到过,不再赘述 3.3 单个字符的输入和输出 Whitespace Characters(空白字符): 在屏幕上产生的显示结果是不可见的空白或空格, 如Tab、Enter和空格键。 输入方法: 一是用noskipws:不管从键盘读入什么 二是将函数get( )与输入流对象 cin 联合使用 输出方法: cout and its<<; 利用输出流对象 cout 的成员函数put( )来显示一个字符。 从键盘读取单个字符(包括空格) char ch; cin>>ch; cin>>noskipws>>ch;//从键盘读取单个字符(包括空格) cin.get(ch); cout.put.(ch) Programming pitfalls 1. 不要混淆流插入运算符(<<输出)和流提取运算符(>>输入)。 2. 某些流操纵符只作用于下一个数据域(例如setw); 而另外一些流操纵符(例如 setprecision)对所有的后继数据域都起用。

Angular – Language Service

前言 以前就有写过 Angular 学习笔记 language service, 这篇做整理而已.  介绍 Angular .html 和 .ts 类似 MVC 中的 View 和 Controller, View 负责写设计, Controller 负责写逻辑. 但 View 始终是需要和 Controller 做绑定的. 它们直接的关联就需要一个 Plugin 去告诉 VS Code. 这样就可以做到在 .html 看到一个 .ts 的 binding 可以直接 F12 跳到 .ts 里面查看. 在写 .html 时也可以智能提示 .ts 里的 model 属性. 这些就要归功于 Angular Language Service 了.  手动安装 pre-release 参考: Installing a particular release build 稳定版直接安装 VS Code extension 就可以了.

LeetCode 279 Perfect Squares DP

Given an integer n, return the least number of perfect square numbers that sum to n. A perfect square is an integer that is the square of an integer; in other words, it is the product of some integer with itself. For example, 1, 4, 9, and 16 are perfect squares while 3 and 11 are not Solution 显然设 \(dp[i]\) 表示数字 i 的最少切分数,考虑转移的时候需要枚举此时的数字划分,由于其中一个数一定是平方数,所以只需要 \(O(\sqrt{n})\) 的复杂度即可 点击查看代码 class Solution { private: int dp[10005]; bool check(int x){ if(((int)sqrt(x)*(int)sqrt(x))==x)return true; return false; } public: int numSquares(int n) { if(n==1)return 1; dp[1] = 1; for(int i=2;i<=n;i++){ dp[i] = 9999999; if(check(i))dp[i] = 1; else{ for(int j=1;j<=sqrt(i);j++)dp[i] = min(dp[i], dp[j*j]+dp[i-j*j]); } } return dp[n]; } };