Calvin's Marbles


  • 首页

  • 关于

  • 归档

  • 标签

  • 搜索

HDU 2089 不要62 数位DP

发表于 2017-09-23

这条题目是典型的求[L, R]区间内满足某性质的整数的数目问题,通常解法是用[0, R]区间的数目减去[0, L-1]区间的数目。数位DP是此类问题常见的解题思路。

阅读全文 »

FLP 定理

发表于 2017-09-21

论文Impossibility of Distributed Consensus with One Faulty Process证明了在异步系统中,哪怕只允许非拜占庭错误,只要有一个进程出错,那么系统就不一定能达成共识,也就是不满足 termination 要求。而在同步系统中,即使是拜占庭条件下却能够达成。

阅读全文 »

分布式一致性详解

发表于 2017-09-21

本文被拆分自分布式一致性和分布式共识协议。拆分的目的是:

  1. 上一篇文章更贴近于 DDIA 的架构
  2. 本篇文章理论性较强,可以单独被拆出
阅读全文 »

分布式一致性和分布式共识协议

发表于 2017-09-20

随着请求量的增大,为了高可用和容错,常常采用维护多个冗余副本的办法来实现,因此需要维护这些副本之间的一致性。

随着数据量的增大,单个节点难以承载所有数据,分布式系统还会将数据进行分区,如何维护分区间事务是一个问题。

分布式集群搭建在网络上,而网络通信是复杂的,数据包的丢失、重复、乱序需要被妥善处理,此外节点宕机或者网络分区的情况也需要被考虑。CAP 理论认为一致性、可用性和分区容错不可能同时做到。

分布式系统中常出现以下的一些应用场景:分布式锁、负载均衡、发布订阅模型、选举、分布式队列。

本篇文章以 DDIA 以及作者的讲解视频为骨架,辅以业界的相关实现,来综述性探讨上述的一些问题。

  1. 本文中的一些共识方面的理论性问题被迁移到专题文章中。
  2. 另一些事务方面的问题被迁移到专题文章中。
阅读全文 »

数据库系统中的事务

发表于 2017-09-20

本文主要讲述数据库中事务的控制模型、事务隔离等级和事务并发控制。

本文从分布式一致性和分布式共识协议一文中分离。主要以 DDIA 和 A Critique of ANSI SQL Isolation Levels 这篇论文为脉络。

阅读全文 »

黄山游记

发表于 2017-08-20

黄山之行屡屡被耽搁,终于在第四次勉强成行。

阅读全文 »

Manacher算法

发表于 2017-08-11

我们知道优化非启发性算法的方法常常包括使用定理、利用计算机的架构特点、使用恰当的数据结构以及动态规划等。而动态规划的核心理念就是减少重复计算。
对于回文串问题的Manacher算法来说,我们要重用0..(i-1)的结果,那怎么重用呢?假设i和j关于p(i > p > j)对称,那么R[i]便可通过R[j]求得。
计算最长回文串的暴力算法是O(n^2),而马拉车算法能够在O(n)时间内解决问题。

阅读全文 »

不动点组合子Y-Combinator

发表于 2017-07-28

不管怎样,可以把 lambda 当做一个匿名函数来看待,那么这个匿名函数如何在递归调用的时候引用自己呢?Haskell B. Curry给出了Y不动点组合子(Y Combinator,当然不是那个著名的公司啦)可以解决这个问题。在本文中:

  1. 基于 Haskell 如何在匿名函数中调用自己
    1. 在其他语言中,如何解决 Lazy Evaluation 的问题
    2. 自定义的 fix 中,如何避免递归调用 fix
  2. 基于 Python 的 Demo
    1. Python 如何在匿名函数中调用自己
    2. Python 中的 Y Combinator
    3. Z Combinator
  3. 基于 C++ 的 Demo
  4. 为什么通过找不动点可以解决自我调用的问题
    1. 什么是不动点
    2. 不动点和本问题的联系
  5. 简单的 lambda 演算
  6. 证明 Y-Combinator 的性质 Y f = f (Y f)
    讨论 Y-Combinator 的类型
阅读全文 »

神器Continuation

发表于 2017-07-24

Continuation、Coroutine和Generator是异步编程中的一些概念。通过Continuation能够实现Coroutine和Generator。

Continuation常有两种实现,一种是以call/cc(call with current contination)为代表的语言级别的实现;另一种对于不能原生支持Continuation的语言但是支持闭包(函数作为一等公民)的语言,可以使用CPS(continuation-passing style)来实现Continuation。

阅读全文 »

贵州游记

发表于 2017-07-11

一直以来,贵州一直出现在卓林的自黑之中。什么江苏六州、南京四省省会,和伟哥那段“贵州山水甲天下”、“贵州简称赣”的梗更是屡屡被提起。于是今年暑假在他的热情邀请下,我们去贵州进行了一次非常幸运与快乐的旅行。主要行程包括镇远-凯里-安顺-麻尾-荔波。

阅读全文 »
1…161718…25
Calvin Neo

Calvin Neo

246 日志
152 标签
RSS
GitHub Twitter Weibo
Links
  • xqq
  • wenwen
  • zyyyyy
© 2015 - 2025 Calvin Neo   Hosted by Coding Pages
版权声明
由 Hexo 强力驱动
主题 - NexT.Muse