+
-
*
/
++
--
% -- 取余
# include <stdio.h>
int main()
{
int a = 15,b = 8,c;
c = a + b;
printf("c = %d\n",c);
c = a - b;
printf("c = %d\n",c);
c = a * b;
printf("c = %d\n",c);
c = a / b;
printf("c = %d\n",c);
c = a % b;
printf("c = %d\n",c);
return 0;
}
# include <stdio.h>
int main()
{
float a = 15,b = 8,c;
c = a + b;
printf("c = %f\n",c);
c = a - b;
printf("c = %f\n",c);
c = a * b;
printf("c = %f\n",c);
c = a / b;
printf("c = %f\n",c);
// float是不能进行取余操作
// c = a % b;
// printf("c = %f\n",c);
return 0;
}
> < >= <= == !==
! -- 非
&& -- 逻辑与(短路与)
|| -- 逻辑或(短路或)
~ -- 按位取反
#include <stdio.h>
int main()
{
unsigned char x = 0x17,y;
y = ~x; // x:0001_0111 y = 1110_1000 e8
printf("%#x\n",y); // %#x -- x表示16进制打印,#表示自动补齐0x
return 0;
}
& -- 按位与
unsigned char x = 0126, y = 0xac,z;
z = x & y;
x 01_010_110
y 1010_1100
x&y 00000100 0x04
| -- 按位或
unsigned char x = 076,y = 0x89,z;
z = x | y;
x 00111110
y 10001001
z 10111111
^ -- 按位异或
unsigned char x = 75,y = 0173,z;
z = x ^ y;
移位运算
运算量 运算符 表达式
unsigned char a = 0xe4,b;
b = a << 3;
a 1110 0100
b 0010 0000 -- 0x20
#include <stdio.h>
int main()
{
unsigned char a = 0x4,b,c,d;
b = a << 1;
C = a << 2;
d = a << 3;
printf("%#x\n",a); // a = 0000_0100 b = 0000_1000 8
printf("%#x\n",a); // 16
printf("%#x\n",a); // 32
return 0;
}
+=
-=
/=
%=
...
#include <stdio.h>
int main()
{
int count,sum;
count = 0;
sum = 0;
while(count++ < 20) {
sum += count;
}
printf("sum = %d\n",sum);
return 0;
}
表达式1 ? 表达式2 : 表达式3
int x = 82, y = 101;
x >=y ? x+18:y-100
x<(y-11):x-22:y-1
#include <stdio.h>
int main()
{
int x,y;
x = 70;
y = x++ > 70 ? 100 : 0;
printf("x = %d y = %d\n",x,y); // 71 0
return 0;
}
执行顺序是从左到右,结果由最后一个表达式决定
float x = 10.5,y = 1.8,z = 0;
z = (x +=5,y = x+0.2); //z =10.7
sizeof(数据类型)
sizeof(数组)
sizeof(变量名)
来源:人民数据本文约2200字,建议阅读6分钟AI、VR/AR等技术在提升用户未来互联网应用使用体验的同时也可能带来新的挑战。复制人工智能(AI)将给数字经济的创新发展提供强大动力。在内容生产层面,生成性AI、数字虚拟人等AI技术和机器学习模型将带来内容生产的变革,可以自主生成文本、图像、音频、视频、虚拟场景等各类数字内容,这将推动生成性AI的蓬勃发展,打造新的数字内容生成与交互形态。此外,AI和生成性AI带来的内容生产变革也将让VR/AR、元宇宙等未来互联网应用成为可期待的现实。生成性AI、数字虚拟人成发展趋势AI领域的两个发展方向与互联网和数字经济发展趋势密切相关。一是生成性AI。该技术代表着AI的未来发展方向,Gartner将生成性AI列为2022年五大影响力技术之一,预测到2025年生成性AI所创造的数据可占到所有已生产数据的10%。生成性AI是指AI和机器学习算法基于训练数据,自主生成新的文本、图像、音频、视频等内容。生成性AI可以学习并抽象出输入数据的内在模式,并利用这些模式生成新的类似内容。目前,生成性AI几乎不需要人类参与就可以生成高质量的创造性内容,实现图片风格转化、
前言本篇文章是作者在学习'事件循环'的一个总结,观看本文,你会对事件循环这种运行机制有所了解,并且准备了大量习题复习消化内容复制EventLoop(事件循环)的由来EventLoop(事件循环)是为了解决单线程问题而产生的‘计算机系统’一种运行机制。 JavaScript从诞生起就是单线程。所有任务都在一个线程上完成。一旦遇到大量任务或者遇到一个耗时的任务,网页就会出现"假死",无法响应用户的行为。为了解决这个问题,浏览器开始支持异步处理,就是把一些异步任务(AJAX/定时器...),放到任务队列中,然后通过不断读取、触发任务队列中的异步代码,这种机制就叫做事件循环(EventLoop)。 这里要注意: 1、单线程任务分为同步任务和异步任务,异步任务又分为宏任务(MacroTask)和微任务(MicroTask)复制想深入了解线程的小伙伴可以看看下面阮一峰写的进程和线程的理解 线程的一个简单解释常见的宏任务、微任务(如果不了解先记一下)宏任务script(全局任务)、setTimeout、setInterval、setImmediate(浏览器
NR.3:Don'tavoidexceptions NR.3:不要拒绝使用异常 Reason(原因)Thereseemtobefourmainreasonsgivenfornotusingexceptions:不使用异常的四个主要原因可能是:exceptionsareinefficient 例外是低效的exceptionsleadtoleaksanderrors 异常导致泄漏和错误exceptionperformanceisnotpredictable 异常表现不可预测theexception-handlingrun-timesupporttakesuptoomuchspace 异常处理运行时支持占用了太多空间 Thereisnowaywecansettlethisissuetothesatisfactionofeverybody.Afterall,thediscussionsaboutexceptionshavebeengoingonfor40+years.Somelanguagescannotbeusedwithoutexceptions,butothersdonots
禁止使用root用户启动|访问控制描述 使用root权限去运行网络服务是比较有风险的(nginx和apache都是有独立的work用户,而redis没有)。rediscrackit漏洞就是利用root用户的权限来替换或者增加authorized_keys,来获取root登录权限的 加固建议 使用root切换到redis用户启动服务:useradd-s/sbin/nolog-Mredis sudo-uredis/<redis-server-path>/redis-server/<configpath>/redis.conf复制操作时建议做好记录或备份禁止监听在公网|访问控制描述 Redis监听在0.0.0.0,可能导致服务对外或内网横向移动渗透风险,极易被黑客利用入侵。 加固建议 在redis的配置文件redis.conf中配置如下:bind127.0.0.1或者内网IP,然后重启redis操作时建议做好记录或备份打开保护模式|访问控制描述 redis默认开启保护模式。要是配置里没有指定bind和密码,开启该参数后,redis只能本地访问,拒绝外部访问。 加固建议
Inthisrecipe,we'lluserandomforestsforclassificationtasks.randomforestsareusedbecausethey'reveryrobusttooverfittingandperformwellinavarietyofsituations.在这部分,我们将使用随机森林来完成分类任务。随机森林由于对过拟合的稳健性和在众多情形下表现较好受青睐。Gettingready准备工作We'llexplorethismoreintheHowitworks...sectionofthisrecipe,butrandomforestsworkbyconstructingalotofveryshallowtrees,andthentakingavoteoftheclassthateachtree"voted"for.Thisideaisverypowerfulinmachinelearning.Ifwerecognizethatasimpletrainedclassifiermightonlyb
编程开发的初学者若能掌握“机器思维”的技巧往往能事半功倍,但熟练掌握该技能后却要避免陷入思维陷阱。拓展:所谓机器思维,就是贴近计算机运行的原理,充分利用计算机的优势。电脑最大的特点就是效率高,最擅长的事情就是循环操作,因此我们能使用循环来处理很多事情。但是一旦形成这样的思维习惯,也许就会陷入思维陷阱了。正确的姿势是:对算法时刻保持一定的数学敏感度,尽可能地将数学融入程序中,而不是一味的暴力破解。比如,要计算从1到100的所有自然数之和。多年的计算机思维可能会让你的算法脱口而出:for循环,从1到100遍历并累加。这么做简单是简单,但效率却很低。一个从来没学习国编程的小学生,他的思路可能是这样的:总和=(1+100)*100/2梯形面积=(上底+下底)*高/二一个简单的公式比上述循环暴力破解效率提高了100倍。机器思维的另一个陷阱是:总以为所有的事情都有个对错,总以为我们能把握所有的可能。这正是计算机的特点,开发者在写软件的时候,必须周详考虑所有的可能性,哪怕只有百万分之一的几率发生也必须要在代码中有所体现,否则软件就是有BUG有隐患的。一旦形成这样思维习惯,就很难从开发者岗位转向管理类
本篇文章介绍一个以matplotlib为底层,更容易定制化作图的库SeabornSeaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。安装seaborn的方法pipinstallseaborn复制原始数据展现(这是一份家庭调查的数据,preglngth-怀孕周长,birthord-孕妇的第几个孩子,birthwgt_lb1-婴儿重量(单位:磅),birthwgt_oz1-婴儿重量(单位:盅司),agepreg-孕妇在分娩时的年龄)importpandasaspd births=pd.read_csv('births.csv')复制 直方图:现在用seaborn.distplot()来制作直方图,观察之间的差异#对上表的prglngth列做一个直方图 importmatplotlib.pyplotasplt importseabornassns#要注意
聚簇索引索引和数据存储在一块(都存储在同一个B*tree中)。 一般主键索引都是聚餐索引Mysql中InnoDB引擎的主键索引为聚簇索引,MyISAM存储引擎采用非聚集索引 非聚簇索引索引数据和存储数据是分离的。二级索引(辅助索引)二级索引存储的是记录的主键,而不是数据存储的地址。以Mysql的InnoDB为例 主键是聚集索引 唯一索引、普通索引、前缀索引等都是二级索引(辅助索引)示例下面我们通过一个具体的示例进行演示聚集索引和二级索引pl_ranking(编程语言排行榜表)该表包含3个字段,如下: id:主键 plname:编程语言名称 ranking:排名 idplnameranking15C216Java118Php623C#526C++329Ada1750Go1252Lisp15.........id:设置主键 plname:普通索引 聚簇索引(主键索引)聚集索引从图中我们可以看到,索引数据和存储数据都是在一颗树上,存在一起的。通过定位索引就直接可以查找到数据。这棵树是根据主键进行创建的。 如果查找id=16的编程语言, selectid,plname,rankingfromp
大多数SDN部署在一个数据中心,目前SDN的目的旨在将数据中心SDN拓展到更广泛的网络应用,如DCI、SD-WAN、5G大无线以及CDN等。网络跨越全球,连接着数十亿的用户和设备,平均软件定义网络连接基本上都是在100英尺以内,且大多数人认为每一个SDN应用都是完全在一个单独的数据中心中。虽然随着云计算的发展,云数据中心更多的采用SDN,与SDN结合应用,但很难看出SDN在数据中心之间或者是SD-WAN、5G甚至是CDN网络中有着怎样的应用。但其实,SDN正在发乎其无限的潜力。下面将以两个方向,一个是DCI,一个是SD-WAN以及5G中的应用来给大家一一阐述。首先,SDN将怎样在DCI间应用呢?一个方法是将SDN定位到数据中心以外的应用,如传输网络,传输SDN显然是数据中心之外的应用,他在发展意义上来说,与数据中心没有任何联系,只是负责传输,但事实上SDN提供了一个跳跃点,提出并定义了一个新的更广泛的关键价值主张,即为数据中心互连的实现解决一部分的难题。SDN在云数据中心的成功主要是因为他解决了两个问题。一是SDN能够构建许多L2层以太子网来承载多租户应用,还可以轻松地集成云部署工具,
集合框架可以说是Java里面必备的知识点了,日常的使用中也会遇到各种情况需要使用到集合。下面就简单介绍下各种集合的使用场景: ListList可以看做是数组,实现的方式有两种:ArrayList适合随机访问LinkedList适合做插入删除操作Queue和Stack这两种数据结构都可以通过LinkedList来实现MapMap用于保存键值对,常用的实现方式有:HashMap使用散列表实现TreeMap基于红黑树,保证键的排序LinkedHashMap基于链表的哈希,能保证插入的顺序性Set与Map相比,set不接受重复的值实现的方式与Map类似。工具类其实就俩,Collections以及Arrays,有空就需要看看。技巧首先可以通过iterator遍历列表以及map。用户也可以自己定义iterator实现倒序遍历。如:classReversibleArrayList<T>extendsArrayList<T>{ publicReversibleArrayList(Collection<T>c){ super(c); } publicIterable&
Binance将为Twitter探索的基于区块链的新解决方案的一部分也可能需要扩展这项服务。Binance,按交易量计算,世界上最大的加密货币交易平台,也是新的股票合作伙伴之一推特公司公布的计划帮助社交媒体的新所有者,埃隆·马斯克通过区块链技术探索新途径,通过这些途径,平台可以推出新的解决方案。正如交易平台公布的那样,它正在组建一个团队,以帮助破译加密和区块链如何在新议程中帮助Twitter,使其成为所有人适度的市政厅。虽然团队想出的确切产品和解决方案目前仍然未知,但猜测已经在酝酿中。然而,众所周知,正在成立的研究团队将探索整合链上解决方案的途径,以解决马斯克本人发现困扰该公司的与垃圾邮件和机器人有关的问题。利用加密的加密性质及其在注册前需要验证的功能,新旧帐户可以放在雷达下以获得真实性。垃圾邮件和机器人问题是埃隆·马斯克改造平台的核心,这一主题几乎导致交易被取消。当关于该公司的谈判仍在进行时,马斯克询问了平台上机器人的实际数量,他不同意当时的首席执行官帕拉格·阿格拉瓦尔引用的数字。随着世界上最富有的人现在掌权,他将努力纠正这一点至关重要,通过Binance建立区块链可能是他计划这样做
题目大意 有两个仅包含小写英文字母的字符串A和B。现在要从字符串A中取出k个互不重叠的非空子串,然后把这k个子串按照其在字符串A中出现的顺序依次连接起来得到一个新的字符串,请问有多少种方案可以使得这个新串与字符串B相等?注意:子串取出的位置不同也认为是不同的方案。对于所有10组数据:1≤n≤1000,1≤m≤200,1≤k≤m。 题解 本题的错误解法是定义状态$f(i,j,k)$为字符串$A$的前$i$个字符,字符串$B$的前$j$个字符已经匹配完,且已经分了$k$块时的方案最多为多少,状态转移为$f(i+1,j,k)+=f(i,j,k),若A_{i+1}=B_{j+1},则f(i+1,j+1,k)+=f(i,j,k),f(i+1,j+1,k+1)+=f(i,j,k)$。 本算法错在我们没有记录$f(i,j,k)$中$i$有没有选在子串中,这使各类关于$k$的转移,如$f(i+1,j+1,k)+=f(i,j,k)$等,不成立。 所以正确解法为定义状态$f(i,j,k,0)$表示第$i$位选在子串中,$f(i,j,k,1)$表示没有选,这样就有递归式:$f(i+1,j,k
很抱歉,我更习惯用Markdown,而且我看到博客园提供了Markdown编辑器。 但是我不得不从别的地方用Markdown的方式写完blog,再导为md,再转到博客园。 我仔细看了一下博客园的md编辑器,很“简洁”,这没什么不好的,md崇尚流畅书写不需要花哨的按钮。 同时,我真地很仔细的找了(可能我没找到?),没有找到预览的地方,我必须先发布,这种所见->发布->查看->所得的感觉,实在让人感觉,怎么说呢,很山寨。 或者说,博客园这里的md编辑器,有点过于简洁,甚至于“简陋”了。 当然,可能我真的不熟悉这里的编辑器。 作为一个md写博客的人,您给支个招吧! \(\dfrac{1}{0}\) 【版权所有@foreach_break】 【博客地址http://www.cnblogs.com/foreach-break】 可以转载,但必须注明出处并保持博客超链接
、启动Docker容器 1.加载镜像 2.启动实验容器 二、配置Hadoop环境 1.配置JAVA环境 2.配置分布式模式 3.配置hosts文件 4.配置SSH无密码登录 5.安装Hadoop并配置环境变量 三、配置+集群环境 1.修改文件slaves 2.修改文件core-site.xml 3.修改文件hdfs-site.xml 4.修改文件mapred-site.xml 5.修改文件yarn-site.xml 四、配置slave节点 五、启动Hadoop集群 一、启动Docker容器1.加载镜像实验使用的Docker镜像保存在/cg/images/hadoop_node.tar.gz文件中,执行如下命令加载该镜像: dockerload</cg/images/hadoop_node.tar.gz 2.启动实验容器执行如下四个命令,启动四个名称分别为master、slave1、slave2、slave3的docker容器用于实验: dockerrun--namemaster--privileged--hostnamemaster--ip172.18.0.2--add-hos
问题:给你\(n\)个矩形的左上角的坐标和右下角的坐标,问你这\(n\)个矩形所覆盖的总面积。 对于这个问题,我们可以使用扫描线。 扫描线: 将几个矩形分成如下图所示的样子(不同的颜色分开求,蓝色表示原矩形): 使用线段树维护\(y\)轴,\(x\)轴上的直线从左到右作添加删除操作(矩形左边就加,右边就减),同时计算两相邻直线间距离乘上线段树上的覆盖长度,将它加入总面积中。 使用线段树维护时,可以用一个\(cover\)记录整个区间被整条线段覆盖了几次(大于0次覆盖长度就是整个区间的长度,等于0次就是左右子树的覆盖长度和)。 注意:如果要离散化,离散化后的单位可能不均,如10-->1,20-->2,50-->3,那么[1,2]间的距离就是10,[2,3]间的距离就是30,这里需要再开数组记录。 代码: #include<iostream> #include<algorithm> #defineintunsignedlonglong usingnamespacestd; intn; structnode{ intx[3]; inty[3];
前言: 未来基于Dapp的游戏可能会多起来吧,尤其是博彩类游戏,由于区块链匿名特性,加之数字货币不受国家监控,几乎成了一个法外之地.大量游戏团队都往之涌入. 今天讲讲当前Dapp的一种游戏模式--pvp,结合一个github上的开源项目magic-maze-2d来解读. 简介: 代码是从github上搜索到的,它是基于波场(公链)来发布合约的. 具体的github地址magic-maze-2d,我这边权当搬运工了,我觉得代码写的很好,非常地敬佩作者. 设计思想: pvp模式,转变了之前人和平台博弈的局面,转为人和人之间的博弈,平台只作为组织者而存在.这样游戏服务商可以承包大部分的业务逻辑,而涉及数字货币的交易则由智能合约来管理.公开透明,玩家都能接受. 继续借用作者的流程图: 其合约的核心代码如下所示: contractMagicMaze{ //用于创建房间(带着游戏房间信息的hash),设定奖励规则 functioncreate(uint256id,stringmemoryname,stringmem
一.参考文档 https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html https://maven.apache.org/plugins/maven-dependency-plugin/examples/filtering-the-dependency-tree.html https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html 二.查看jar包的间接依赖 1.如果发现某个jar包,自己的pom中并没有定义,想看一下是被哪个jar包间接引用的,两种方法 (1)用mvndependency:tree>temp/tree.txt,直接输出到当前项目下,然后在idea中打开,搜索要找的jar包名字即可. 这里的 "+-" 和"\-"并没有什么意义,只是为了让分级看起来更直观 参考:https://
MistrustbetweenU.S.andMalaysianair-accidentinvestigatorshashamperedamultinationalprobeintothejetlinerthatwentmissingthreeweeksago,peoplefamiliarwiththeinvestigationsaid,withnoclearleadsemergingaboutwhoorwhatwasresponsibleforitsdisappearance. hamper:妨碍,束缚 jetliner:喷气客机 Assearchshipsracedtotrytoconfirmairbornesightingsofpotentialwreckageinthenewestsearcharea,officiallybothsidessaidcooperationbetweenthetwocountriesisgood.Butpeoplefamiliarwithbothcountries'eff
llqpow(lla,llb){ llres=1; while(b){ if(b&1) res=res*a%mod; b>>=1; a=a*a%mod; } returnres; } llc[maxn][maxn],inv[maxn],B[maxn]; voidexgcd(lla,llb,ll&x,ll&y){ if(b==0){ x=1;y=0; return; } llx1,y1; exgcd(b,a%b,x1,y1); x=y1; y=x1-(a/b)*y1; } voidget_fac(){ for(inti=0;i<maxn;i++){ c[i][0]=1;c[i][i]=1; } for(inti=1;i<maxn;i++) for(intj=1;j<=i;j++) c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod; } voidget_inv(){ for(inti=1;i<maxn;i++){ llx,y; exgcd(i,mod,x,y); x=(x%mod+mod)%mod; inv