我在使用 DataGrip 连接 MySQL 数据库时,点击 Test Connection 后,遇到了如下问题:
The specified database user/password combination is rejected: [28000][1045] Access denied for user 'root'@'localhost' (using password: YES)
翻译过来就是:
我出现该问题的原因: MySQL 的端口号被占用。
首先,我在电脑左下角的搜索栏搜索 cmd,打开 DOS 窗口;
输入命令 netstat -ano|findstr 端口号名称;查看占用 3306 的进程 ID 有哪些?查询出来的结果为两个:16560 和 27320;
然后,我在电脑左下角的搜索栏搜索 任务管理器 打开;
点击 服务,找到占用 3306 端口号的进程 ID ,发现:其中一个是 MySQL(16560),还有一个是安装禅道时生成的服务 mysqlzt(27320);
解决方法: MySQL 的端口号是 3306,禅道默认的端口号也是 3306;它们两个的端口号有冲突。
1、电脑左下角的搜索栏搜索 服务 打开;
2、在服务里面找到 mysqlzt,右键 停止(O) 就 OK 了。
然后就可以连接成功啦!!!
完。。。
百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。
由题目可知这两条公式:
公鸡+母鸡+小鸡 = 100
5*公鸡+3*母鸡+小鸡/3 = 100
具体实现代码如下:
public static void main(String[] args) { int gj = 0;//0-20 int mj = 0;//0-33 int xj = 0; for ( gj = 0; gj<= 20; gj++) { for ( mj = 0; mj<= 33; mj++) { xj = 100 - gj - mj; if (gj * 5 + mj * 3 + xj / 3 == 100 && xj % 3 == 0) { System.
在程序中,十六进制的表示形式通常为字符串;而十进制则为数字整型(本质的内存存储都是01二进制)。C#中提供了内置的转换方法,同时,我们也可以依据不同进制之间的规则自己实现进制之间的转换。
1 十六进制转十进制 十六进制到十进制的转换可以通过下面的步骤实现:
从十六进制数字的最右侧(个位)开始获取每一位的数字获取的数字乘以16^n,n从0开始将相乘后的结果相加到最终值以等值的十进制对应十六进制,比如 A或a作为10,B或b作为11 /// <summary> /// 另一种16进制转10进制的处理方式,Multiplier参与*16的循环很巧妙,对Multiplier的处理很推荐,逻辑统一 /// </summary> /// <param name="HexaDecimalString"></param> /// <returns></returns> public static int HexaToDecimal(string HexaDecimalString) { int Decimal = 0; int Multiplier = 1; for (int i = HexaDecimalString.Length - 1; i >= 0; i--) { Decimal += HexaToDecimal(HexaDecimalString[i]) * Multiplier; Multiplier *= 16; } return Decimal; } static int HexaToDecimal(char c) { switch (c) { case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; case 'A': case 'a': return 10; case 'B': case 'b': return 11; case 'C': case 'c': return 12; case 'D': case 'd': return 13; case 'E': case 'e': return 14; case 'F': case 'f': return 15; } return -1; } 2 C#内置方法16转10进制 Convert.
原文地址:
【深度学习】深入理解Batch Normalization批标准化 : https://www.cnblogs.com/guoyaohua/p/8724433.html
【深度学习】批归一化(Batch Normalization) :【深度学习】批归一化(Batch Normalization) - Madcola - 博客园
Batch Normalization原理与实战 ( 什么是Internal Covariate Shift):Batch Normalization原理与实战 - 知乎
#解决问题
解决内部数据分布不稳定问题
#做法
统计mini-batch个样本的期望和方差从而进行归一化,但这样会导致数据表达能力的缺失,所以要引入两个参数从而恢复数据本身的表达能力
#优势
使得网络中每层输入数据的分布相对稳定,加速模型学习速度,允许网络使用饱和性激活函数,缓解梯度消失问题,具有一定的正则化效果
0 Batch Normalization 是训练神经网络模型的一种有效方法。该方法的目标是将特征(每层激活后的输出)归一化为均值为 0,标准差为 1。所以问题在于非零的均值是如何影响模型训练的:
首先,可以理解为非零均值是指数据不围绕 0 值分布,但数据中大多数值大于零或小于零。结合高方差问题,数据变得非常大或非常小。这个问题在训练层数很多的神经网络时很常见。特征没有在稳定区间内分布(由小到大),这将影响网络的优化过程。众所周知,优化神经网络需要使用导数计算。假设一个简单的层计算公式是 y = (Wx + b), y 对 w 的导数是:dy = dWx。因此,x 的取值直接影响导数的取值(当然,神经网络模型中梯度的概念并不是那么简单,但从理论上讲,x 会影响导数)。因此,如果 x 带来不稳定的变化,其导数可能太大,也可能太小,导致学习模型不稳定,因此不得不降低网络的学习率。相反当使用 Batch Normalization 时我们可以在训练中使用更高的学习率。
Batch Normalization 可以避免 x 值经过非线性激活函数后趋于饱和的现象。因此,它确保激活值不会过高或过低。这有助于权重的学习,当不使用时有些权重可能永远无法进行学习,而用了之后,基本上都可以学习到。这有助于我们减少对参数初始值的依赖。
Batch Normalization 也是一种正则化形式,有助于最小化过拟合。使用 Batch Normalization,我们不需要使用太多的 dropput,这是有意义的,因为我们不需要担心丢失太多的信息,当我们实际使用的时候,仍然建议结合使用这两种技术。
1、为什么使用BN 使用BN的原因是网络训练中每一层不断改变的参数会导致后续每一层输入的分布发生变化,而学习的过程又要使每一层去适应输入的分布,因此不得不降低网络的学习率,并且要小心得初始化(internal covariant shift)如果仅通过归一化方法使得数据具有零均值和单位方差,则会降低层的表达能力(如使用Sigmoid函数时,只使用线性区域),所以增加两个调节参数(scale和shift),使得网络表达能力增强BN就是在深度神经网络训练过程中使得每一层神经网络的输入保持相近的分布。改善正则化策略:作为正则化的一种形式,轻微减少了对dropout的需求另一个注意点:在arxiv六月份的preprint论文中,有一篇叫做“How Does Batch Normalization Help Optimization?
问题:对于刚接触clickhouse不久,concat()函数就是拼接2列的值,一直出不来,为啥呢?
原因:两列值的类型不一致 导致的 操作:无法转换,如下:
两个类型一直的字段进行concat(URL,Name) ,没有任何问题
通过toString(字段名)把值转换之后,然后再使用concat(字段1,字段2),想怎么操作就怎么操作
成功啦:
类型转换: toString(属性字段)
*2022年圣诞节到来啦,很高兴这次我们又能一起度过~
这里的部分代码已经在网上出现过,做了部分优化。是matlab版本。
一、内容介绍 这段代码是一个生成3D圣诞树的Matlab函数。运行该函数时,它使用圆柱函数创建圣诞树的 3D 表面,对树冠应用随机扰动,并使用 surfl 函数绘制树。树以当前轴 (gca) 绘制,并为绘图指定颜色图和照明。该函数还在树的顶部绘制一颗星星,并创建白色圆圈的散点图来表示树上的灯光。最后,该函数使用 lightFuncX 和 lightFuncY 函数在树上绘制其他光源,这些函数在代码前面已定义。该函数通过设置轴限制、打印框纵横比和视图角度以及关闭轴标签并打印标题来结束。
二、代码优化 提示:在代码中实现gif功能。
gif 功能所用到工具包为CDT, 链接: https://github.com/chadagreene/CDT
二、编码实现 提示:详细展示实现相关创意的代码。
function XmasTree2022 % 生成树本体曲面 treeFunc=@(h)[h(1),h(h>0&h<=3).*0+1.5,8-(h(h>3)-3).*0.3636]; [X,Y,Z]=cylinder(treeFunc(0:0.2:25)); % 随机移动树冠上点的位置 Z=Z.*25; cnt1=1:21;cnt2=16:126; angle=atan(Y(cnt2,cnt1)./X(cnt2,cnt1)); treeDiffusion=rand(111,21)-0.5; X(cnt2,cnt1)=X(cnt2,cnt1)+cos(angle).*treeDiffusion; Y(cnt2,cnt1)=Y(cnt2,cnt1)+sin(angle).*treeDiffusion; Z(cnt2,cnt1)=Z(cnt2,cnt1)+(rand(111,21)-0.5).*0.5; X(:,end)=X(:,1);Y(:,end)=Y(:,1);Z(:,end)=Z(:,1); % 绘制圣诞树 ax=gca;hold on; set(gcf,'Color',[22,32,51]./255); surfl(X,Y,Z,'light'); r=(0.0430:(0.2061/50):0.2491)'; g=(0.2969:(0.4012/50):0.6981)'; b=(0.0625:(0.2696/50):0.3321)'; Cmap=[r,g,b];Cmap(1:6,:)=Cmap(1:6,:).*0+[77,63,5]/265; % 绘制标题 annotation('textbox',[.45,.86,.1,.1],'String','Merry Christmas','fontsize',23,... 'fontweight','Bold','FontName','Cambria','HorizontalAlignment','center','Color','w','EdgeColor','none') % 当前坐标区域修饰 set(ax,'XLim',[-10 10],'YLim',[-10,10],'ZLim',[0,30],'PlotBoxAspectRatio',[1,1,1.2],... 'XColor','none','YColor','none','ZColor','none','Color',[22,32,51]./255,'View',[-37.5,4],... 'Colormap',jet,'Position',[0,0,1,.9],'Tag',char([100,105,115,112,40,39,20316,32773,... 58,115,108,97,110,100,97,114,101,114,39,41])); lighting phong;shading interp;eval(ax.Tag) % 绘制星星 plot3(0,0,25.6,'p', 'MarkerSize',24,'MarkerFaceColor',[255,223,153]/255,'MarkerEdgeColor','none','LineWidth', 1); starLightHdl=scatter3(0,0,25,6000,'o','MarkerFaceColor','w','MarkerEdgeColor','w','MarkerEdgeAlpha',0,'MarkerFaceAlpha', 0.
你可以使用 RabbitTemplate 的 convertAndSend 方法来发送消息。这个方法接受两个参数:目的地和消息内容。例如:
rabbitTemplate.convertAndSend("myExchange", "myRoutingKey", "Hello, World!"); 其中,"myExchange" 是交换机的名称,"myRoutingKey" 是路由键,"Hello, World!" 是要发送的消息内容。
需要注意的是,在发送消息之前,你需要先配置好 RabbitTemplate 和你的 RabbitMQ 服务器之间的连接,这样才能发送消息
vue2项目所有页面固定格式,内容不同时,封装组件 新建json文件,把每页标题文字写到数组对象里
[ { "title": "主页", "content": "这是主页" }, { "title": "管理", "content": "这是管理" }, { "title": "中心", "content": "这是中心" } ] 在父组件引入json文件,然后通过子组件传递的titile标题循环进行判断
<template> <div v-if="dataInfo" class="ExplainPage" :style="style"> <h1>{{ dataInfo.title }}</h1> <p :title="dataInfo.content">{{ dataInfo.content }} </p> </div> </template> <script> import DataJSON from './data.json' export default { props: { title: { type: String, default: '主页' } }, data() { return { dataInfo: null, style: {} } }, //每页图片不同 mounted() { if (!
使用select标签写下拉菜单时对option默认选中的“selected”无效,没有实现默认选中
先确定在脚本中是否存在第一次加载的时候更改了select里面的属性
解决:在select标签上加上autocomplete="off"属性,关闭自动完成属性,再次在火狐浏览器中刷新页面,默认选中属性selected="selected"属性有效。因此,在每次遇到select标签时加上autocomplete="off"属性。
代码:
<select class="selectType" autocomplete="off"> <option value="流畅" selected="selected">流畅</option> <option value="标清">标清</option> <option value="高清">高清</option> <option value="超清">超清</option> </select>
文章目录 前缀和与差分算法:1、校门外的树2、值周3、中位数图4、激光炸弹5、二分6、货仓选址 前缀和与差分算法: 前缀和与差分算法主要是为了快速求出某个区间的和,例如有一个数组a[10]={0,1,2,3,4,5,6,7,8,9},我们需要求a[3]到a[7]的和,传统的办法是求a[3]+a[4]+a[5]+a[6]+a[7],但是这样求复杂度是O(n),如果我们建立了一个前缀数组S[9]={a[0],a[0]+a[1],a[0]+a[1]+a[2],a[0]+a[1]+a[2]+a[3],……,a[0]+a[1]+……+a[9]},那么我们要求a[3]到a[7]的和可以用差分思想S[7]-S[2]即可求出
1、校门外的树 NC16649 校门外的树
题目描述
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。
由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
输入描述:
第一行有两个整数:L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
输出描述:
包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。
示例1
输入
500 3
150 300
100 200
470 471
输出
298
备注:
对于20%的数据,区域之间没有重合的部分;
对于其它的数据,区域之间有重合的情况。
解题思路:
下面通过样例来解释
输入
10 3
2 5
3 6
8 8
输出
5
1、一个数组初始化为0,a[11]={0},左边界+1,右边界后1格-1
2、例如2 5,那么a[2]++,a[6]–,3 6,那么a[3]++,a[7]–,8 8,那么a[8]++,a[9]–,处理完后结果如下:
a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a[10]001100-1-11-10 进行前缀和后:
a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a[10]00122210100 a[i]代表的值就是被移走的次数,可见a[0],a[1],a[7],a[10]没有被移走,答案是4
3、模拟上面过程即可
代码:
#include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>>n>>m; int a[10010]={0}; for(int i=1;i<=m;i++){ int x,y; cin>>x>>y; a[x]++;//起点+1 a[y+1]--;//终点-1 } int ans=0; for(int i=0;i<=n;i++){//从0到n if(i){//前缀和 a[i]+=a[i-1]; } if(a[i]==0){//没有被移走的 ans++; } } cout<<ans<<endl; } 2、值周 NC24636 值周
QSIS和ArcGIS Pro同样可以处理地理数据
shp格式文件直接拖入空白工程。
网上流传的大城市shp数据包需要经过工具再重新导出转换一下 rangblendergis更兼容
导出搜索3857 EPSG:3857
image.png image.png 点运行查询
image.png blender gis插件导出shp
无法导出 shapefile import fails,check logs
根据错误得知
if fields[extrudeFieldIdx][1] not in ['N', 'F', 'L'] : self.report({'ERROR'}, "Extrusion field do not contains numeric values") return {'CANCELLED'} 意思是所选的字段没有 数值数据,经过翻译得知,qgis导出时里面有一个elevation 高度所以blender导入 选择 这个elevation就可以了
地形贴图数据的处理
首先在qsis导入了shp的情况下,新建临时图层,
比较快的方法是
使用矢量工具-研究工具-提取图层范围
image.png 提取完成后就得到了一个图层, 然后右键导出 同样的格式 shp导出 之后用bigemap进行处理
bigemap里面选择导入边界,会发现自动选择了深圳的边界,因为我从网上下载的shp就是深圳的,但是具体啥范围我也看不出来,下图就清晰明了了
image.png 点击下载提示当前默认地图不支持下载
新建文件为lozn.mapconf
[0] Url=http://cn.bing.com/maps [1] Url=http://ditu.amap.com [2] Url=http://globeland30.org/ [3] Url=http://kh.google.com [4] Url=http://map.baidu.com [5] Url=http://map.qq.com [6] Url=http://map.
一、单选题
1.采用DMA方式传送数据时,每传送一个数据就要占用一个( )的时间。 A、指令周期
B、机器周期
C、存储周期
D、总线周期
正确答案:C
2.在中断响应过程中,( )操作可以通过执行程序实现。
A、关中断
B、保护断点
C、保护现场
D、读取中断向量
正确答案:C
3.下列陈述中正确的是( )。
A、在DMA周期内,CPU不能执行程序
B、中断发生时,CPU首先执行入栈指令将程序计数器内容保护起来
C、DMA传送方式中,DMA控制器每传送一个数据就窃取一个指令周期
D、输入输出操作的最终目的是要实现CPU与外设之间的数据传输
正确答案:D
4.中断向量地址是( )。
A、子程序入口地址
B、中断服务程序入口地址
C、中断服务程序入口地址指示器
D、宏调用入口地址
正确答案:C
5.在关中断状态,不可响应的中断是( )
A、可屏蔽中断
B、硬件中断
C、软件中断
D、不可屏蔽中断
正确答案:A
6.为了便于实现多级中断,保存现场信息最有效的方法是采用( )。
A、通用寄存器
B、堆栈
C、存储器
D、外存
正确答案:B
7.采用DMA方式传递数据时,每传送一个数据就要占用一个( )时间。
A、指令周期
B、时钟周期
C、机器周期
D、存储周期
正确答案:D
8.关于DMA方式的正确描述是( )。
A、DMA方式完全由硬件实现,不需软件的介入
B、DMA方式完全由DMA控制器实现
C、DMA方式只是在数据交换的过程由硬件实现,但仍需软件的介入
D、DMA方式在外设与内存进行数据传输时不需要CPU干预
正确答案:C
二、填空题
9.CPU响应中断时最先完成的两个操作是 和 。
正确答案:关中断 保护PC
10.DMA技术的出现使得高速外围设备可通过DMA控制器直接访问 。
正确答案:内存储器
11.PC系统有两类中断源:
①由CPU外部的硬件信号引发的称为 ,它分为 中断和 中断;
一、填空题
1.有关高速缓冲存储器Cache的说法正确的是( ) 。
A、只能在CPU以外
B、CPU内外都可以设置Cache
C、只能在CPU以内
D、若存在Cache,CPU就不能再访问内存
正确答案:B
2.采用虚拟存储器的主要目的是( )。
A、提高主存储器的存取速度
B、扩大主存储器的存储空间,并能进行自动管理调度
C、提高外存储器的存取速度
D、扩大外存储器的存储空间
正确答案:B
3.常用的虚拟存储系统由( ) 两级存储器组成,其中辅存是大容量的磁表面存储器。
A、主存 — 辅存
B、Cache — 辅存
C、主存 — Cache
D、通用寄存器 — 主存
正确答案:A
4.从下列有关存储器的描述中,选择出正确的答案:
A、多体交叉存储主要解决扩充容量问题;
B、访问存储器的请求是由CPU发出的;
C、Cache与主存统一编址,即主存空间的某一部分属于Cache;
D、Cache的功能全由硬件实现。
正确答案:D
5.相联存储器是按( ) 进行寻址的存储器。
A、地址指定方式
B、堆栈存取方式
C、内容指定方式
D、地址指定与堆栈存取方式结合
正确答案:C
6.交叉存储器实质上是一种( )存储器,它能执行独立的读写操作。
A、多模块,并行
B、多模块,串行
C、整体式,并行
D、整体式,串行
正确答案:A
7.下面说法正确的是( )。
A、半导体RAM信息可读可写,且断电后仍能保持记忆
B、半导体RAM属挥发性存储器,而静态的RAM存储信息是非挥发性的
C、静态RAM、动态RAM都属挥发性存储器,断电后存储的信息将消失
D、ROM不用刷新,且集成度比动态RAM高,断电后存储的信息将消失
正确答案:C
8.存储单元是指( )。
A、存放一个二进制信息位的存储元
B、存放一个机器字的所有存储元集合
C、存放一个字节的所有存储元集合
D、存放两个字节的所有存储元集合
正确答案:B
9.在计算机的存储体系中,Cache的作用是______。
A、提高存储体系的速度
目录
平常的使用:
安装软件
编写:vi/vim vscode
编译
执行 路径/文件名
计算机五大部件
编译四步
1.预编译(处理#)
2.编译(查错,代码到汇编)
3.汇编(汇编到二进制指令)
4.链接
平常的使用: 安装软件 ubuntu apt install xxx
红帽子 yum install xxx
编写:vi/vim vscode main.c ->main.exe/main
c语言的源程序后缀必须是.c,硬盘上存放,计算机不能直接执行
编译 转换为二进制可执行程序.exe
执行 路径/文件名 如果文件在bin下就不用加路径
Linux和windows可执行程序的格式不一样,所以不能移植程序
Linux ELF格式
WIN PE格式
/bin存放命令/可执行程序
计算机五大部件 运算器、控制器、存储器(内存)、输入设备i、输出设备o
三种总线:数据/地址/控制
电脑只认识01
汇编注记符无法解决跨平台的问题
高级语言可以
程序编译就是将高级语言转换成汇编注记符然后转换成01
编译四步 程序编译分为四步:1.预编译(Prepressing)2.编译(Compilation)3.汇编(Assembly)4.链接(Lunking)
1.预编译(处理#) .cpp->.i
gcc -E main.c -o hello.i
处理#和//
2.编译(查错,代码到汇编) .i->.s
gcc -S main.i -o main.s
语法检查:词法分析、语法分析、优化后生产相应的汇编代码文件
3.汇编(汇编到二进制指令) .s->.o
gcc -c main.
本章节教大家在你的 Navicat 数据库管理工具中切换语言模式,so easy!
以下是中文模式中的切换路径,大家应该很容易掌握!
- 点击菜单栏
-工具
-选项
-常规中设置语言
即可自由切换!
以下是英文模式中的切换路径,给你更直观的操作指南。
- 点击Tools
- Options
-General-Language
即可自由切换!
如果你想试用 Navicat 16,可以在这里下载 Navicat 的 14 天全功能免费试用版。
往期回顾 假冒网站引发多重安全风险 | 官方严正声明:切勿在非官方渠道购买或下载 Navicat 软件Navicat 荣获 Microsoft 金牌合作伙伴Navicat 16.3 正式支持 OceanBase 企业版免费试用 Navicat 16Navicat 的 20年发展史SQL 语句中 WHERE 1=1 的作用SQL 中计算总行数的百分比互动有礼活动进行中 | 奖品为价值 819 元 Navicat PremiumNavicat NAPP 校企合作和申请免费一年期的 Navicat Premium 教育版
在互联网大数据时代的背景下,随着人工智能、信息化产业的蓬勃发展,市场对数据库的需求愈加强烈。数据库是现代信息产业的基础,而Navicat 提供高效且便捷的可视化数据库管理工具,能为数据库管理人员极大的提升工作效率,并大大地减少企业的运营成本。
同时,Navicat 积极投身于国内校企合作,已与多所国内顶尖高校签订合作协议(如清华大学、交通大学,复旦大学等)。凭借我们技术开发实力与产品优势,助力国内数据库教研发展,并加速各大高校信息创新产业项目的研究与开展。在此,我们诚邀各大院校一起加入到“Navicat NAPP”计划中来!
国内高校合作
2021年清华大学与上海卓威信息科技有限公司(Navicat中国)签署合作协议,该协议涵盖Navicat 为清华大学老师及同学提供产品许可证,满足学校多学科的数据库管理使用需求,提升师生在数据库管理和开发方面的效率,为社会和各大企业提供所需的专业人才,更促使数据库开发及管理技术交流发展。清华大学作为中国最高学府之一,是拥有百年辉煌历史与光荣传统,为理、工科、人社、生科、电资、科管、教育、艺术领域均衡发展的一流学府。
2019年6月20日,上海交通大学学生创新中心与Navicat高校教育合作签约仪式在学生创新中心隆重举行。此次“Navicat学术伙伴计划”将由Navicat中国为交大师生免费提供正版Navicat数据库管理软件,提升师生在数据库管理和开发方面的效率,助力学校软件正版化工作的推进。上海交大学生创新中心是面向全校24小时开放的工程实践基地,创新项目的孵化平台,提供周到的工程服务。其中软件授权平台以推进正版软件校园计划为目标,为全校师生提供工程类专业软件的授权服务和管理。
复旦大学信息化办公室与上海卓威信息科技有限公司(Navicat中国)于2014年12月10日签署合作协议,为提高学生对数据库相关知识的理解和实际应用能力,建立长期友好的校企合作关系。根据协议,Navicat会提供Navicat产品许可证给复旦大学信息化办公室,用于内部管理,教学培训等非商业性活动,推动教学和管理信息化发展。复旦大学为中国的一流大学,双方进行科研技术交流,将有效提高学生对数据库相关知识的累积,从而为社会和各大企业提供所需的专业人才。
「 以下国内高校也已加入“Navicat 学术伙伴计划”」
如何加入「Navicat NAPP」
Navicat 学术伙伴计划 (NAPP),提供 Navicat Premium, Navicat Data Modeler, Navicat Monitor 非商业版许可证及Navicat Cloud 专业方案给各大院校作教学用途。为加强知识产权保护,满足学校教学、科研、办公等使用正版软件的需求提供帮助。(此计划只针对非营利性学术机构开放)
请登录Navicat 学术伙伴计划官方页面或联系我们的客服!
Navicat 教育版https://navicat.com.cn/sponsorship/education
往期回顾 假冒网站引发多重安全风险 | 官方严正声明:切勿在非官方渠道购买或下载 Navicat 软件Navicat 荣获 Microsoft 金牌合作伙伴Navicat 16.3 正式支持 OceanBase 企业版免费试用 Navicat 16Navicat 的 20年发展史SQL 语句中 WHERE 1=1 的作用SQL 中计算总行数的百分比互动有礼活动进行中 | 奖品为价值 819 元 Navicat PremiumNavicat NAPP 校企合作和申请免费一年期的 Navicat Premium 教育版
前面我学习了一段时间的HTML和CSS知识,下面我们来运用知识实现一个简单的水平一级导航栏。
实现结果 按步骤一步步来:
1 首先我们写出它的HTML部分。
HTML部分代码 这里是在<div>中使用三个<a>标签,为了方便我没有使用<p>或者<ul>.
2 写出css部分。
*{ padding: 0; margin: 0; } #nav{ width: 300px; margin: 100px auto; font-size: 0; } a{ display: inline-block; width: 80px; height: 30px; font-size: 14px; text-align: center; line-height: 30px; text-decoration: none; border-bottom: 1px solid #ccc; } a:hover{ color: while; background-color:#ccc; border: 1px solid; border-left-color: orange; border-top: orange; border-right-color: orange; } (1)首先写*{}里的内容将全局边框设置为0(这是一个需要注意的习惯)
(2)#nav里设置导航栏的宽度以及外边框属性(此处font-size=0是为了防止每个超链接选项出现间隙,你可以删除此项对比效果)
(3)为了能够改变<a>里的高度和宽度,我们首先让display:inline-block;这里是重点,因为<a>属于inline类型不能够改变高度和宽度,只有转换类型为inline-block才能够改变。
(4)设置鼠标放在超链接上的状态,这里就不详细讲解。
完整代码放在下面:(为了方便大家浏览,将css与html代码写在了一起)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>DaoHang</title> <style> *{ padding: 0; margin: 0; } #nav{ width: 300px; margin: 100px auto; font-size: 0; } a{ display: inline-block; width: 80px; height: 30px; font-size: 14px; text-align: center; line-height: 30px; text-decoration: none; border-bottom: 1px solid #ccc; } a:hover{ color: while; background-color:#ccc; border: 1px solid; border-left-color: orange; border-top: orange; border-right-color: orange; } </style> </head> <body> <div id="
一、MVVM组成 (1).Model:数据层,包含数据实体和对数据实体的操作
(2).View:界面层,对应于Activity,XML,View,负责数据显示以及用户交互。
(3).ViewModel:关联层,将Model和View进行绑定,Model或者View更改时,实时刷新对方。
使用细节 1.View只做和UI相关的工作,不涉及任何业务逻辑,不涉及操作数据,不处理数据。UI和数据严格的分开
2.ViewModel只做和业务逻辑相关的工作,不涉及任何和UI相关的操作,不持有控件引用,不更新UI。
二、Android MVVM持有关系与模式图 View
显而易见Activity/Fragment(XML)便是MVVM中的View,当收到ViewModel传递过来的数据时,Activity/Fragment负责将数据以你喜欢的方式显示出来。当然View还包括ViewDataBinding
ViewModel
ViewModel作为Activity/Fragment与其他组件的连接器。负责转换和聚合Model中返回的数据,使这些数据易于展示,并把这些数据改变即时通知给Actvity/Fragment。
ViewModel是具有生命周期意识的,当Activity/Fragment销毁时ViewModel的onClear方法会被回调,你可以在这里做一些清理工作。LiveData是具有生命周期意识的一个可观察的数据持有者,ViewModel中的数据有LiveData持有,并且只有当Activity/Fragment处于活动时才会通知UI数据的改变,避免无用的刷新UI。
Model
Repository及其下方就是model了。Repository负责提取和处理数据。数据来源可以是本地数据库,也可以来自网络,这些数据统一有Repository处理,一般对外隐藏数据获取方式
Binder绑定器
Android中的数据绑定技术由DataBinding和LiveData共同实现。当Activity/Fragment接收到来自ViewModel中的新数据时(由LiveData自动通知数据的改变),将这些数据通过DataBinding绑定到ViewDataBinding中,UI将会自动刷新。
三、Jetpack组件 1.databind 使用声明性格式将布局中的界面组件绑定到应用的数据源(就是相互赋值),viewModel与view进行交互的核心组件,注意对 Binding Adapter的使用官方使用
2.viewModel 官方介绍
ViewModel is a class that is responsible for preparing and managing the data for an Activity or a Fragment. It also handles the communication of the Activity / Fragment with the rest of the application (e.g. calling the business logic classes)
ViewModel是一个负责为Activity或Fragment准备和管理数据的类。它还处理Activity/Fragment与应用程序其余部分的通信(例如调用业务逻辑类)。
屏幕旋转Activity 与ViewMode声明周期对比 可以看到即使是发生屏幕旋转,旋转之后拿到的ViewModel跟之前的是同一个实例,即发生屏幕旋转时,ViewModel并不会消失重建;而如果Activity是正常finish(),ViewModel则会调用onClear()销毁。
今天有个需求需要点击待着地址内容跳转到第三方地图
在网上找了不少资料,有一个大哥的挺方便的自己想跳转那个就调用就好了,封好了工具类
有一个局限性就是需要经纬度跳转如果没有经纬度的话是跳不了的
引入 url_launcher: ^6.1.7
需要在ios的info.plist文件添加
<key>LSApplicationQueriesSchemes</key> <array> <string>iosamap</string> <string>qqmap</string> <string>baidumap</string> </array> 这里是工具类
import 'dart:io'; import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; class MapUtil { /// 高德地图 static Future<bool> gotoAMap(longitude, latitude) async { var url = '${Platform.isAndroid ? 'android' : 'ios'}amap://navi?sourceApplication=amap&lat=$latitude&lon=$longitude&dev=0&style=2'; bool canLaunchUrl = await canLaunch(url); if (!canLaunchUrl) { //失败的话会调用这里的方法 return false; } await launch(url); return true; } /// 腾讯地图 static Future<bool> gotoTencentMap(longitude, latitude) async { var url = 'qqmap://map/routeplan?type=drive&fromcoord=CurrentLocation&tocoord=$latitude,$longitude&referer=IXHBZ-QIZE4-ZQ6UP-DJYEO-HC2K2-EZBXJ'; bool canLaunchUrl = await canLaunch(url); if (!
线性回归算法 1 线性回归简介2 线性回归的初步使用3 损失函数4 优化算法4.1 正规方程4.2 梯度下降4.3 优化方法比较4.4 线性回归api再介绍 5 欠拟合与过拟合5.1 欠拟合5.2 过拟合 6 正则化线性模型6.1 Ridge Regression 岭回归6.2 Lasso 回归6.3 Elastic Net 弹性网络6.4 Early stopping 7 模型的保存与加载 1 线性回归简介 线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。
h代表学习算法的解决方案或函数,也称为假设(hypothesis),h(x)代表预测的值 注意:
只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型。线性回归当中主要有两种模型,一种是线性关系,另一种是非线性关系 2 线性回归的初步使用 线性回归API
sklearn.linear_model.LinearRegression()
LinearRegression.coef_:回归系数 '''导入模块''' from sklearn.linear_model import LinearRegression '''构造数据集''' x = [[80, 86], [82, 80], [85, 78], [90, 90], [86, 82], [82, 90], [78, 80], [92, 94]] y = [84.2, 80.6, 80.1, 90, 83.