草庐IT

自己动手实现 HashMap(Python字典),彻底系统的学习哈希表(上篇)——不看血亏!!!

HashMap(Python字典)设计原理与实现(上篇)——哈希表的原理在此前的四篇长文当中我们已经实现了我们自己的ArrayList和LinkedList,并且分析了ArrayList和LinkedList的JDK源代码。本篇文章主要跟大家介绍我们非常常用的一种数据结构HashMap,在本篇文章当中主要介绍他的实现原理,下篇我们自己动手实现我们自己的HashMap,让他可以像JDK的HashMap一样工作。如果有公式渲染不了,可查看这篇内容相同且可渲染公式的文章HashMap初识如果你使用过HashMap的话,那你肯定很熟悉HashMap给我们提供了一个非常方便的功能就是键值(key,val

自己动手实现 HashMap(Python字典),彻底系统的学习哈希表(上篇)——不看血亏!!!

HashMap(Python字典)设计原理与实现(上篇)——哈希表的原理在此前的四篇长文当中我们已经实现了我们自己的ArrayList和LinkedList,并且分析了ArrayList和LinkedList的JDK源代码。本篇文章主要跟大家介绍我们非常常用的一种数据结构HashMap,在本篇文章当中主要介绍他的实现原理,下篇我们自己动手实现我们自己的HashMap,让他可以像JDK的HashMap一样工作。如果有公式渲染不了,可查看这篇内容相同且可渲染公式的文章HashMap初识如果你使用过HashMap的话,那你肯定很熟悉HashMap给我们提供了一个非常方便的功能就是键值(key,val

动手实践丨基于ModelAtrs使用A2C算法制作登月器着陆小游戏

摘要:在本案例中,我们将展示如何基于A2C算法,训练一个LunarLander小游戏。本文分享自华为云社区《使用A2C算法控制登月器着陆》,作者:HWCloudAI。LunarLander是一款控制类的小游戏,也是强化学习中常用的例子。游戏任务为控制登月器着陆,玩家通过操作登月器的主引擎和副引擎,控制登月器降落。登月器平稳着陆会得到相应的奖励积分,如果精准降落在着陆平台上会有额外的奖励积分;相反地如果登月器坠毁会扣除积分。A2C全称为AdvantageActor-Critic,在本案例中,我们将展示如何基于A2C算法,训练一个LunarLander小游戏。整体流程:基于gym创建LunarLa

动手实践丨基于ModelAtrs使用A2C算法制作登月器着陆小游戏

摘要:在本案例中,我们将展示如何基于A2C算法,训练一个LunarLander小游戏。本文分享自华为云社区《使用A2C算法控制登月器着陆》,作者:HWCloudAI。LunarLander是一款控制类的小游戏,也是强化学习中常用的例子。游戏任务为控制登月器着陆,玩家通过操作登月器的主引擎和副引擎,控制登月器降落。登月器平稳着陆会得到相应的奖励积分,如果精准降落在着陆平台上会有额外的奖励积分;相反地如果登月器坠毁会扣除积分。A2C全称为AdvantageActor-Critic,在本案例中,我们将展示如何基于A2C算法,训练一个LunarLander小游戏。整体流程:基于gym创建LunarLa

自己动手基于 Redis 实现一个 .NET 的分布式锁类库

分布式锁的核心其实就是采用一个集中式的服务,然后多个应用节点进行抢占式锁定来进行实现,今天介绍如何采用Redis作为基础服务,实现一个分布式锁的类库,本方案不考虑Redis集群多节点问题,如果引入集群多节点问题,会导致解决成本大幅上升,因为Redis单节点就可以很容易的处理10万并发量了,这对于日常开发中99%的项目足够使用了。目标如下:支持using语法,出using范围之后自动释放锁支持尝试行为,如果锁获取不到则直接跳过不等待支持等待行为,如果锁获取不到则持续等待直至超过设置的等待时间支持信号量控制,实现一个锁可以同时获取到几次,方便对一些方法进行并发控制代码整体结构图创建Distribu

自己动手基于 Redis 实现一个 .NET 的分布式锁类库

分布式锁的核心其实就是采用一个集中式的服务,然后多个应用节点进行抢占式锁定来进行实现,今天介绍如何采用Redis作为基础服务,实现一个分布式锁的类库,本方案不考虑Redis集群多节点问题,如果引入集群多节点问题,会导致解决成本大幅上升,因为Redis单节点就可以很容易的处理10万并发量了,这对于日常开发中99%的项目足够使用了。目标如下:支持using语法,出using范围之后自动释放锁支持尝试行为,如果锁获取不到则直接跳过不等待支持等待行为,如果锁获取不到则持续等待直至超过设置的等待时间支持信号量控制,实现一个锁可以同时获取到几次,方便对一些方法进行并发控制代码整体结构图创建Distribu

动手实验查看MySQL索引的B+树的高度

一:文中几个概念h:统称索引的高度;h1:主键索引的高度;h2:辅助索引的高度;k:非叶子节点扇区个数。二:索引结构叶子节点其实是双向链表,而叶子节点内的行数据是单向链表,该图未体现。磁盘块其实是页,用操作系统中的术语来表达而已。InnoDB中使用的是B+树聚集索引,主键索引叶子节点有整行的数据,辅助索引有主键值(用于回表查询)和索引值。2.1页的概念Mysql的InnoDB是以页为存储单位的,每个B+Tree的节点都是一个页的大小,默认一页的大小是16K(与操作系统数据读取相关)。数据页(即叶子节点)2.2索引高度h与页面I/O数的关系每次查询都要访问到叶子结点,其访问的页面数正好就是索引的

动手实验查看MySQL索引的B+树的高度

一:文中几个概念h:统称索引的高度;h1:主键索引的高度;h2:辅助索引的高度;k:非叶子节点扇区个数。二:索引结构叶子节点其实是双向链表,而叶子节点内的行数据是单向链表,该图未体现。磁盘块其实是页,用操作系统中的术语来表达而已。InnoDB中使用的是B+树聚集索引,主键索引叶子节点有整行的数据,辅助索引有主键值(用于回表查询)和索引值。2.1页的概念Mysql的InnoDB是以页为存储单位的,每个B+Tree的节点都是一个页的大小,默认一页的大小是16K(与操作系统数据读取相关)。数据页(即叶子节点)2.2索引高度h与页面I/O数的关系每次查询都要访问到叶子结点,其访问的页面数正好就是索引的

动手实现深度学习(12): 卷积层的实现与优化(img2col)

9.1卷积层的运算传送门: https://www.cnblogs.com/greentomlee/p/12314064.htmlgithub:Leezhen2014: https://github.com/Leezhen2014/python_deep_learning卷积的forward卷积的计算过程网上的资料已经做够好了,没必要自己再写一遍。只把资料搬运到这里:http://deeplearning.net/software/theano_versions/dev/tutorial/conv_arithmetic.html#transposed-convolution-arithmeti

动手实现深度学习(12): 卷积层的实现与优化(img2col)

9.1卷积层的运算传送门: https://www.cnblogs.com/greentomlee/p/12314064.htmlgithub:Leezhen2014: https://github.com/Leezhen2014/python_deep_learning卷积的forward卷积的计算过程网上的资料已经做够好了,没必要自己再写一遍。只把资料搬运到这里:http://deeplearning.net/software/theano_versions/dev/tutorial/conv_arithmetic.html#transposed-convolution-arithmeti