自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 24.5.19 《CLR via C#》 笔记11

第十四章 字符、字符串和文本处理.NET Framework中字符总是表示成16位Unicode代码值,Char类型提供两个公共只读常量字段MaxValue(\0)和MinValue(\uffff)数值类型与Char的转换强制类型转换(效率高),C#中可以指定checked或unchecked使用System.Convert,转换以checked方式执行使用IConvertible接口(效率最差),例:ToChar,ToInt32StringString派生自Object是引用类型,

2024-05-19 16:29:43 667

原创 24.3.24 《CLR via C#》 笔记10

第十三章 接口类和接口继承CLR不支持多继承,因此所有托管编程语言都不支持任何类都从且只能从一个类派生(最终从Object类派生)定义接口实际只是对一组方法进行了统一的命名,类通过指定接口名称来继承接口,且必须显式实现接口方法接口可以定义方法、事件、无参属性和有参属性(索引器);不能定义构造器方法、实例字段C#中使用interface关键字定义接口;根据约定,接口类型名称以I开头接口可以从另一个或多个接口”继承“,例:IC继承IA和IB,则继承IC的类也要实现IA和IB中定义的方法,该

2024-03-24 12:50:51 439

原创 24.3.1 《CLR via C#》 笔记9

使用泛型类型并指定形参时,实际是定义一个新的类型(从泛型类型派生自的类型派生)。例:定义了class SomeClass<T>, 类中的方法可以使用类指定的T,如定义public T SomeMethod<T>()属性、索引器、事件、操作符方法、构造器、终结器本身不能有类型参数,但是可以在泛型类中定义,从而使用泛型类的类型参数。C#编译器在调用泛型方法时可以进行类型推断,在可以确定类型实参的情况下可以不用<>指定。泛型方法,定义泛型类、结构或接口时,类中定义的方法可以使用类指定的类型参数。

2024-03-01 22:07:28 957

原创 23.12.15 《CLR via C#》 笔记8

要引发事件时,类及派生类的代码调用该方法(如果有对象登记了对事件的关注,那么通知那些对象)以event关键字定义,需要指定访问性(一般一定是public),委托类型和名称。(事件模式要求sender为Object类型,参数名为e,返回类型为void)使用-=操作符注销对象对事件的关注(内部被翻译成remove_XXX方法)使用+=操作符登记对象对事件的关注(内部被翻译成add_XXX方法)定义不要附加数据的事件时,可直接使用EventArgs.Empty。即在合适时机,调用虚方法通知关注了事件的对象。

2023-12-15 22:57:25 470

原创 23.12.9 《CLR via C#》 笔记7

简单的get和set代码,JIT编译器会将代码内联(将代码直接编译到调用它的方法中),基本没有性能损失(编译好的方法会变大,但是访问器的代码一般来说比较少)可以为get和set设置不同的可访问性(一般get-public,set-protected);使用params关键字(只能应用于最后一个参数),指定一个数组容纳不定数量的实参(可以是Object[]以实现任意数量,任意类型的参数)CLR不允许将方法或参数声明为常量(实际上C++中的常量参数也可以通过取地址和强制类型转换绕过常量不可更改的限制)

2023-12-09 19:50:21 427

原创 23.10.15 《CLR via C#》 笔记6

第八章 方法实例构造器方法(引用类型)分配内存->初始化附加字段(类型对象指针、同步块索引)->调用类型实例构造器调用实例构造器之前,内存被归零(使没有显示重写的字段获得0或者null值)实例构造器不能被继承一个类型可以定义多个实例构造器;在访问基类的字段前必须先调用基类的构造器在不调用构造器的前提下创建实例:使用Object.MemberwiseClone(初始化附加字段,然后拷贝字节数据到新对象);使用运行时序列化器反序列化对象不要在构造器中调用虚方法(未完成继承层次结构中

2023-10-15 14:26:05 314

原创 23.09.5 《CLR via C#》 笔记5

第六章 类型和成员基础类型可以定义0或多个以下成员:常量、字段、实例构造器、类型构造器、方法、操作符重载、转换操作符、属性、事件、类型类型的可见性分为public和internal(默认)C#中,成员的可访问性分为private、protected、internal、protected internal、public;接口类型的所有成员必须是public;重写成员可访问性必须一致;从基类派生时可以放宽限制(不能收紧)静态类(永远不会实例化)要用static关键字定义(C#),必须从Object派生

2023-09-05 22:14:07 777

原创 23.05.14 《CLR via C#》 笔记4

第五章 基元类型、引用类型和值类型基元类型:int、float等编译器直接支持(不需要显式new)的类型c#中,不论32/64操作系统,int总是Int32,long总是Int64基元类型之间可以显示或隐式的类型转换(比如int值直接赋值给long)check和uncheck操作:基元类型的算术运算,可能出现溢出编译时,使用/checked命令来决定溢出时像c语言一样回滚还是像basic一样抛出异常使用checked/unchecked操作符或语句指定作者推荐使用无符号类型,来让编译器

2023-05-14 21:24:26 335

原创 23.04.05 《CLR via C#》 笔记3

第四章 类型基础所有类型隐式继承System.Objectpublic方法:Equals;GetHashCode(如果类型需要作为键使用,需要重写该方法);ToString;GetTypeprotected方法:MemberwiseClone;Finalize所有对象都用new操作符创建计算类型和所有基类型字段成员的字节数,以及对象的额外成员(类型对象指针、同步块索引)从堆中分配需要的字节数(内存),置为0初始化对象的类型对象指针、同步块索引调用类型的构造器(构造器中调用基类构造器

2023-04-05 21:40:46 249

原创 23.03.21 《CLR via C#》 笔记2

CLR via C#读书笔记

2023-03-21 21:25:49 254

原创 23.03.05 《CLR via C#》 笔记 1

《CLR via C#》第一章读书笔记

2023-03-05 00:19:25 282

原创 【MindStudio训练营第一期】【昇腾AI训练营新手班学习笔记】大作业

新手班大作业

2022-12-18 18:40:47 402

原创 【MindStudio训练营第一期】【昇腾AI训练营新手班学习笔记】可视化流程编排

【昇腾AI训练营新手班学习笔记】可视化流程编排

2022-12-10 22:57:50 307

原创 【MindStudio训练营第一期】【昇腾AI训练营新手班学习笔记】案例Pyhton代码解析

【昇腾AI训练营新手班学习笔记】案例Pyhton代码解析

2022-12-08 22:13:13 220

原创 【MindStudio训练营第一期】【昇腾AI训练营新手班学习笔记】开发环境配置

【昇腾AI训练营新手班学习笔记】——开发环境配置

2022-12-07 13:12:59 730 4

原创 22.03.01 《Unity 2018 Shaders and Effects Cookbook》笔记Chapter10-11

10.Gameplay and Screen Effects老电影效果Sepia tone 棕褐色调通过叠加颜色获得fixed lum = dot (fixed3(0.299, 0.587, 0.114), renderTex.rgb); fixed4 finalColor = lum + lerp(_SepiaColor, _SepiaColor + fixed4(0.1f,0.1f,0.1f,1.0f), _RandomValue); finalColor = pow(finalCo

2022-03-01 22:22:58 3236

原创 22.02.20 《Unity 2018 Shaders and Effects Cookbook》笔记Chapter8-9

8.Mobile Shader Adjustment变量类型优化——使用更少的内存float 32位;half 16位;fixed 11位在复杂的三角函数和指数函数中,float是必要的half只有三位的精度fixed可以用于照明计算、颜色或纹理在法线贴图和漫反射纹理上共享同一个UV数据(在Input结构中就可以删除一个UV的变量)在#pragma语句中声明noforwardadd物体每个像素的光照只能从单个方向光中获取,其他光线被强制按照逐顶点的光照处理(这个值来自Unit

2022-02-20 21:00:35 2322

原创 22.01.23 《Unity 2018 Shaders and Effects Cookbook》笔记Chapter7

7.Fragment Shaders and Grab Passesvertex and fragment shader对光照如何影响物体表面不感兴趣,不受物理限制,对非真实感的效果很好使用#pragma指令来关联两个函数#pragma vertex vert#pragma fragment frag往往使用vertInput和vertOutput结构体做参数传递,Unity负责初始化输入,我们负责初始化输出(结构体的每个字段都使用绑定语义)绑定语义允许我们用绑定语

2022-01-23 21:27:35 2417

原创 21.12.27 《Unity 2018 Shaders and Effects Cookbook》笔记Chapter6

6.Vertex Functions取顶点颜色:顶点实际上也可以包含颜色信息(默认材质一般不会显示),在vert()函数中可以从appdata_full中提取出来,并在surf()函数中使用它定义input结构 struct Input { float2 uv_MainTex; float4 vertColor; };在vert()函数中提取void vert(inout appdata_full v, out Input o){UNITY_INITIALIZE_OUTPUT(In

2021-12-27 23:06:42 2135

原创 21.11.29 《Unity 2018 Shaders and Effects Cookbook》笔记Chapter5

5.Physically-Based RenderingUnity实现PBR的两种方式使用新的光照模型(标准材质Standard、Standard(Specular setup)),强制执行物理学原理(能量守恒(energy conservation)、微表面散射(microsuface scattering)、菲涅尔反射(fresnel reflectance)、表面遮挡(surface occlusion))等全局光源(global illumination/GL),模拟基于物理的光线传输(t

2021-11-29 22:17:52 3016

原创 21.11.25 《Unity 2018 Shaders and Effects Cookbook》笔记Chapter4

4.Lighting Models自定义光照模型(custom lighting model)改变#pragma指令为:#pragma surface surf LightingModelName创建一个名为Lighting + LightingModelName的函数例:指令为【#pragma surface surf SimpleLambert】,创建对应函数【LightingSimpleLambert()】当两向量点积为0时(求点积函数dot()),两向量成90°角(正交)

2021-11-25 22:40:36 3047

原创 21.10.27 《Unity 2018 Shaders and Effects Cookbook》笔记Chapter1-3

1.Post Processing Stack安装在Package Manager里找到 Post Processing使用在相机所在的物体上,添加组件Post-process Layer,将其Layer属性改为PostProcessing右键创建物体3D Object - Post-process Volume,将该物体的Layer改为PostProcessing在Assets中创建Post-process Profile,为Volume的Profile属性赋值设置is Gl

2021-10-27 09:45:12 1244

原创 21.2.4 CG语言的数据类型

基本类型int 指32位整数float 指32位浮点数half 指16位浮点数,float的一半fixed 指12位定点数,避免了浮点运算从而提升效率bool 指布尔类型(但是应避免if等判断语句的使用,尽量使用数值运算代替)sampler 指纹理对象类型(如sampler2D对应Unity中一张纹理图片)string (不被支持,但是有)向量和矩阵类型向量基本类型+维度(小于等于4)举例:float1,float2,float3,float4float a = 1.0;f

2021-02-04 15:06:42 257

原创 【人机交互实验】命令行数独游戏 C#

题目a) 设计一个命令行界面的游戏,登入游戏界面后,应该有游戏规则说明,按键说明。b) 进入游戏前应该有难度选择:1表示简单、2表示中等、3表示困难。c) 在游戏主界面中有可以循环输入数独值、可以连续玩好几局直到退出、检查结果、查看答案、新开一局的功能。d) 信息提示功能:输入错误时应有提示、游戏失败或获取胜利时应有庆祝界面等。展示源码using System; using System.Collections.Generic; using System.Linq; using

2020-11-19 09:52:11 1876

原创 【人工智能实验】遗传算法解决旅行商问题 C#

问题设有n个互相可直达的城市,某推销商准备从其中的A城出发,周游各城市一遍,最后回到A城。要求为该推销商规划一条最短的旅行路线。算法源码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace TSP{ class P { int len; public

2020-11-19 09:48:28 734

原创 【人工智能实验】A*算法解决八数码问题 C#

题目在3X3的棋盘上放置1到8八个数码,每个数码占一格,且有一个空格。这些数码可以在棋盘上移动,移动规则是:与空格相邻的数码可移入空格。给出初始棋局和目标棋局,用A*算法,给出数码移动序列。目标状态: 1 2 3 8 4 7 6 5算法while(open不空){ sort open,升序 n=open中最小的节点 if(n是目标节点) { 输出结果 break while }end if for(n的每个子节点) { n在open中,且n比该节点小:

2020-11-19 09:45:13 1655

原创 面试复习-图形学2

图形学变换:齐次坐标系,为什么用;仿射变换:线性变换(缩放,对称,旋转,切变)、平移正交投影和透视投影MVP变换:模型坐标系-世界坐标系-观察者坐标系-裁剪空间;视口变换:屏幕空间光栅化 为什么要用三角形(平面、判断内外、重心坐标)?为什么会产生锯齿反走样:MSAA(在像素周围插值)、FXAA(直接替换掉锯齿)、TAA(复用上一帧的值,对静态物体)、DLSS(拉大分辨率+深度学习)深度测试:画家算法-不能处理互相遮挡;Z-buffer算法-不能处理透明物体着色:局部,与其它物体无关,不考虑

2020-09-30 14:56:59 287

原创 面试复习-计算机图形学

计算机图形学线代基础向量加法、投影向量点乘、叉乘矩阵乘法变换线性变换:缩放、对称、切变,旋转齐次坐标(为了平移变换)仿射变换:线性变换+平移复合变换从右向左应用(矩阵乘法的结合律)投影MVP正交投影 Mortho透视投影 MorthoMpersp->ortho光栅化三角形的优势(在一个平面、内外可由叉乘判断、三角形内部插值)采样(把函数离散化)在像素的中心判断,在不在三角形内(叉乘,分别在三条边的左/右侧)锯齿、摩尔纹、车轮效应:采样的频率和函数的频率相差

2020-09-30 14:54:06 1659 5

原创 面试复习-算法

算法排序冒泡(双重循环)外层是趟数,内层是比较的位置,然后两两交换选择排序(双重循环)外层是趟数,内层找到当前趟数的最大值放到最后面插入排序 一个数插入有序数组,从第一个数开始比较快速排序 每趟找一个数,比它小的放前面,比它大的放后面,不断减小范围归并排序 将两个有序数组合并成一个有序数组堆排序 建立一个堆的过程希尔排序 数组分隔成n组,然后插入排序桶排序哈夫曼树定义:带权路径长度最小的数每次取权值最小的两个结点生成树,新的父节点为两结点之和A*算法寻路时维护open

2020-09-30 14:53:38 89

原创 面试复习-C++

C++ 11 新特性语法糖部分nullptr:代替NULL;原因:NULL和0有时会分不清,用nullptr专门区分空指针和0auto和decltype:自动类型推导 ;auto可以推导变量的类型,与C语言中原有的auto功能不相同;auto声明的变量必须初始化;auto不能声明为返回值、不能作形参、不能被修饰为模板参数;auto对运行效率没有影响,因为变量类型的推导在编译时本来也要进行;decltype可以分析表达式的类型,但是不计算表达式的值,是对auto只能判断变量类型的补充for

2020-09-30 14:53:02 123

原创 20.9.4 二叉树的Morris遍历

1.二叉树的Morris遍历(莫里斯)使用递归和栈遍历二叉树,空间复杂度都是O(n),而Morris遍历通过使用叶子结点的null指针标记前驱结点,使空间复杂度降为了O(1)。中序遍历:左子树-根节点-右子树所以对于根节点,它的前驱结点是左子树的最后一个结点(即左子树的最右结点) 记当前的结点为cur 若cur有左子树,则pre=cur的左子树的最右结点 若pre的右孩子为空,则将它的右孩子指向cur,并进入cur的左孩子 若pre的右孩子是cur(上次访问时,上一种情况下设置的),则访问

2020-09-04 16:15:11 71

原创 20.8.29 回文串的判定(Rabin-Karp、KMP)

1.回文串的判定将字符串转置,如果转置后与原串相等,则这是一个回文串原题214.最短回文串该题需要求出“最长回文前缀”,再把最长回文前缀之后的每个字符转置后加到原串的前面即可如abbaaddd,最长回文前缀abba,将addd转置成ddda,添加到原串的前面得到dddaabbaaddd1.1Rabin-Karp详见之前的博客20.8.25 Rabin-Karp编码每次计算的是字符串s[0…i]以及它的转置的Rabin-Karp编码,可以根据s[0…i-1]的值来直接计算分别用left和ri

2020-08-29 16:20:37 285

原创 8.28 LCA问题-BinaryLifting

1.LCALCA(Lowest Common Ancestor)问题,即求树的两个结点的最近公共祖先首先,我们解决如何查找到树结点的第K个祖先的问题,再使用接下来的算法即可伪代码:int LCA(int u,int v){ if u 是 v 的祖先 return u if v 是 u 的祖先 return v for(k:1~u的深度) t = u 的第k个祖先 if t 是 v 的祖先 return t return 0;//直到根节点了还不是 u 、 v 的公共祖先,根据题目处理

2020-08-28 22:08:53 256

原创 20.8.25 Rabin-Karp编码(字符串-哈希)

1.Rabin-Karp编码问题出现在491.递增子序列中求出所有递增子序列不难,问题是如何去除重复的项一开始使用的是unique,但是效果很不好sort(ans.begin(),ans.end());ans.erase(unique(ans.begin(), ans.end()), ans.end());官方题解中给出Rabin-Karp编码的方法,即计算字符串的hash值,在哈希表中判重字符串中字符的种类有k个,则把字符串看成是k+1进制数(如s=“abcab”,有abc三种字符,则

2020-08-25 10:55:21 647 5

原创 20.8.19 求最长回文子串(动态规划、中心扩散)求回文子串的个数 to_string

1.求最长回文子串使用动态规划状态:如果s[i+1]…s[j-1]是回文串,而且s[i]=s[j],那么s[i]…s[j]也是回文串所以状态转移数组dp[i] [j]表示s[i…j]是否是一个回文串class Solution {public: string longestPalindrome(string s) { if(s.size()<=1) return s; bool dp[s.size()][s.size()];//dp数组

2020-08-19 20:48:04 122

原创 20.8.18 二叉搜索树(BST)

1.二叉搜索树二叉搜索树的中序遍历是一个升序序列(左子树结点的值比根结点的值都小,右子树的值比根结点的值都大)将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1所以:根结点是有序数组正中间的一个数,使用递归分别求出左子树和右子树class Solution {public: TreeNode* sortedArrayToBST(vector<int>& nums) {

2020-08-18 21:26:09 76

原创 网络原理 期末复习

1.概述电路交换-两个用户始终占用端到端通信资源分组交换-报文分成小的数据段,在各个路由器之间相互转发速率-吞吐量-带宽-时延2.物理层奈氏准则:信道中码元传输的速率有上限香农定理:信道极限速率C=W带宽log2(1+S/N信噪比)复用:频分、时分、波分、码分、正交频分复用码分复用:每个站有自己的m bit的码片,发送1-发送m,发送0-发送m的反码;每个站的码片不相同且正交;规格化内积,发送1为1,发送0为-13.数据链路层点对点协议PPP:封装成帧(帧定界);透明传输(字节填充:使

2020-08-17 21:25:50 170

原创 软件质量与测试 期末复习

1.软件测试概述W模型 需求分析-系统测试;概要设计-集成测试;详细设计-单元测试(准备);编码-单元测试;集成-集成测试;实施-系统测试;交付-验收测试(实际测试)测试描述角度 需求-界面-功能-安全性-可靠性-可移植性-兼容性-易用性-疲劳-压力测试2.软件测试技术2.1白盒测试逻辑覆盖 语句-判定-条件-判定条件-条件组合 测试用例基本路径 给程序,画出控制流图-环路复杂度-独立路径-测试用例2.2黑盒测试等价类划分:有效-合并等价类 无效-每种一个测试用例边界值分析-重点因果分析

2020-08-16 19:58:47 817

原创 软件体系结构 期末复习提纲

1.软件体系结构概论1.1软件危机表现: 软件成本日益增长。开发进度难以控制。软件质量差。软件维护困难原因: 用户需求不明确。缺乏正确的理论指导。软件规模越来越大。软件复杂度越来越高克服: 软件工程三要素:方法 工具 过程1.2构件定义:构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体获取:现有直接用;旧工程中提取;购买;自己开发分类:关键字、刻面、超文本组织重用:检索与提取-理解与评价-修改-组装1

2020-08-16 19:57:39 1297

原创 20.8.11 分组异或

1.分组异或原题原题解设这两个数字分别是a和b,由于相同的数字进行异或运算结果为0,则nums数组中所有数字进行异或运算的最终结果=a^b,记这个结果为sum分组异或:a和b至少有1bit不相同(在sum的值为1的位上)两个相同的数,在任一bit都是相同的取mask=1<<n,使a & mask ≠ b & mask举例:sum=011,a和b在d1和d0位不相等,则mask=010/001,使a & mask ≠ b & mask特例:mask

2020-08-11 20:10:37 501

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除