avatar
文章
128
标签
134
分类
17
首页
归档
标签
分类
友链
咕咕
搜索
首页
归档
标签
分类
友链

咕咕

三种洗牌算法shuffle
发表于2018-08-10|算法
一、简介洗牌算法可以被理解为三种洗牌算法,分别是抽牌(Fisher-Yates Shuffle算法),换牌(Knuth-Durstenfeld Shhuffle算法)和插牌算法。 二、具体算法2.1、Fisher-Yates 洗牌算法(抽牌算法)这个洗牌方法最早由Ronald A. Fisher和Frank Yates提出,即 Fisher–Yates Shuffle,其基本思想就是从原始数组中随机取一个之前没取过的数字到新的数组中,具体如下: 初始化原始数组和新数组,原始数组长度为n(已知); 从还没处理的数组(假如还剩k个)中,随机产生一个[0, k)之间的数组下标数字p; 从剩下的k个数中把下标为p的数取出,放在新数组的末尾(末尾有数字则放在末尾前一位,依次往前); 重复步骤2和3直到数字全部取完,新数组的数字序列就是一个随机的序列; 下面证明其随机性,即每个元素被放置在新数组中的第i个位置是1/n(假设数组大小是n): 证明:一个元素m被放入第i个位置的概率P = 前i-1个位置选择元素时没有选中m的概率 *...
TCP状态转换详解
发表于2018-05-20|网络•TCP/IP
一、TCP的状态转换图示 1.1、TCP标志位 CWR(Congestion Window Reduce):拥塞窗口减少标志,由发送端设置,用来表明发送端接收到了设置ECE标志的TCP包,发送端通过降低发送窗口的大小来降低发送速率; ECE(ECN Echo):ECN响应标志,在TCP的3次握手时表明一个TCP端是具备ECN(Explicit Congestion Notification)功能的,并且表明接收到的TCP包的IP头部的ECN被设置为11,更多信息请参考RFC793; URG(Urgent):表示紧急标志(The Urgent...
MacOS下的常用指令
发表于2018-01-01|常用命令•Mac
记录了一些 MacOS 下的常用的指令组合方式,比如重置 Launchpad 等。 系统操作相关# 重置 Launchpadcd ~/Library/Application\ Support/Dock/rm ~/Library/Application\ Support/Dock/*.db && killall Dockdefaults write com.apple.dock ResetLaunchPad -bool true && killall Dock
Linux下的常用指令
发表于2018-01-01|常用命令
记录了一些 Linux 下的常用的指令组合方式,比如查看 CPU 数量,查看指定进程的线程情况,释放页面缓存,关闭透明大页,Docker 相关命令等。 CPU相关# 查看CPU物理核心cat /proc/cpuinfo | grep 'physical id' | sort -u | wc -l# 查看CPU核心总数cat /proc/cpuinfo | grep 'cpu cores' | wc -l# 查看逻辑CPUcat /proc/cpuinfo | grep 'processor' | wc -l# 查看指定进程的线程情况ps -mp 8463 -o THREAD,tid,time# 查看进程的线程CPU占用top -H -p 32286 内存相关# 释放页面缓存echo 1 > /proc/sys/vm/drop_caches# 释放目录缓存、文件缓存echo 2 > /proc/sys/vm/drop_caches# 释放页面缓存、目录缓存、文件缓存echo 3 >...
Docker学习笔记 - Docker底层设计
发表于2017-10-15|Docker•虚拟化
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便,本文列出了 Docker 和传统虚拟化方式的不同的设计。 一、基本架构 Docker 采用了 C/S 架构,包括客户端和服务端。Docker 守护进程 (Daemon)作为服务端接受来自客户端的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者 RESTful API 来进行通信。 Docker 守护进程一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker 守护进程交互。 二、命名空间命名空间是 Linux 内核一个强大的特性。每个容器都有自己单独的命名空间,运行在其中的应用都像是在独立的操作系统中运行一样。命名空间保证了容器之间彼此互不影响。 2.1、pid 命名空间不同用户的进程就是通过 pid...
Docker学习笔记 - Docker镜像制作
发表于2017-10-10|Docker•虚拟化
Dockerfile 是一种被 Docker 程序解释的脚本,由一条一条指令组成,本质是一组指令的集合。Dockerfile 有自己的命令格式,Docker 程序会读取 Dockerfile,并将这些指令翻译成 Linux 命令,根据命令制成相应的镜像文件,使用户清晰的了解镜像的制作过程;镜像的定制实际上就是定制每一层所添加的配置、文件,如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。 一、Dockerfile指令1.1、FROM 指定基础镜像所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。而 FROM 就是指定基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。 除了选择现有镜像为基础镜像外,Docker 还存在一个特殊的镜像,名为 scratch。这个镜像是虚拟的概念,并不实际存在,它表示一个空白的镜像。如果你以 scratch...
Linux进程的状态解析
发表于2017-10-10|Linux•进程
一、状态解析1.1、状态 R(TASK_RUNNING):可执行状态 S(TASK_INTERRUPTIBLE):可中断的睡眠状态 D(TASK_UNINTERRUPTIBLE):不可中断的睡眠状态 T(TASK_STOPPED/TASK_TRACED):停止状态或者跟踪状态 Z(TASK_DEAD - EXIT_ZOMBIE):退出状态(进程成为僵尸状态) X(TASK_DEAD - EXIT_DEAD):退出状态(进程即将被销毁,基本很少见) W(TASK_SWAP):进入内存交换(从内核2.6开始无效) 其他状态(可通过ps等指令查看到) <:较高优先级的进程 N:较低优先级的进程 L:数据页被锁进内存 s:包含子进程 l:多线程,克隆线程 +:位于后台的进程组 1.2、状态解析1.2.1、R(TASK_RUNNING) -...
Docker学习笔记 - Docker入门篇
发表于2017-10-01|Docker•虚拟化
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。 一、Docker架构Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。 Docker 镜像(Images):Docker 镜像是用于创建 Docker 容器的模板; Docker 容器(Container):容器是独立运行的一个或一组应用; Docker 客户端(Client):Docker 客户端通过命令行或者其他工具使用 Docker API...
Linux的信号与信号量机制
发表于2017-07-12|Linux•信号•信号量
一、信号(Signal)机制Signal,又简称为信号(软中断信号)用来通知进程发生了异步事件,是一种处理异步事件的方式。一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。信号机制除了基本通知功能外,还可以传递附加信息。 按照不同的分类角度(可靠性方面,与时间的关系上)可以对信号进行区分: 可靠信号(实时信号):支持排队,...
C语言中有趣的烫烫烫
发表于2017-06-04|C/C++•Windows•编程语言
在学校使用 Windows 下的 Visual Studio 2017 进行课堂C的学习过程中遇到过很多类似于 烫烫烫烫烫烫 , 锟斤拷,屯屯屯 等比较有意思的乱码,也闹出了一些比较有意思的事情。 一、现象以下是部分乱码在不同的编码类型下的编码值: 字符 简体中文(GB2312) Unicode Unicode (UTF-8) 烫 CCCC EB70 E783AB 锟 EFBF 1F95 E9949F 斤 BDEF A465 E696A4 拷 BFBD F762 E68BB7 屯 CDCD 6F5C E5B1AF 锘 EFBB 1895 E99498 傻 C9B5 BB50 E582BB 二、分析以上比较有意思的乱码情况仅出现在使用Visual Studio或者VC6.0自带的MSVC编译器进行编译时才会出现,也就是说通常只有在Windows环境下使用Visual...
1…91011…13
avatar
bugwz
持续学习,持续进步
文章
128
标签
134
分类
17
最新文章
Ceph Crimson 设计实现深入解析
Ceph Crimson 设计实现深入解析2025-06-01
Ceph Crimson 集群搭建指南
Ceph Crimson 集群搭建指南2025-01-12
Ceph QoS 机制深入分析
Ceph QoS 机制深入分析2024-10-25
GPFS CSI 对接 K8S 指南
GPFS CSI 对接 K8S 指南2024-09-01
GPFS 集群部署与运维记录
GPFS 集群部署与运维记录2024-08-01
分类
  • Redis17
    • RedisCluster1
    • RedisModule10
    • 异地多活1
    • 演进史3
    • 特性1
    • 相关库1
  • 论文10
标签
火焰图 SSD 代码调试 Codis lsof 编程语言 哈希表 Iptables Shadowsocks SmartCache 分布式 内存 Perf RocksDB 比特币 Docker 内网穿透 Raft rsync 爬虫 nc Interrupt 工具 存储介质 Go Base编码 Linux 许可证 Latex HAProxy Python Ubuntu RPM 常用命令 GDB RedisTimer CuckooFilter Ngrok 信号量 RedisCluster
归档
  • 六月 2025 1
  • 一月 2025 1
  • 十月 2024 1
  • 九月 2024 1
  • 八月 2024 1
  • 三月 2024 1
  • 六月 2023 4
  • 四月 2023 1
网站信息
文章数目 :
128
本站总字数 :
488.3k
©2019 - 2025 By bugwz
框架 Hexo 6.3.0|主题 Butterfly 5.3.5