num

【翻译/介绍】jump consistent hash:零内存消耗,均匀,快速,简洁,来自Google的一致性哈希算法 [2015-03-13]

隐身守侯 提交于 2020-03-21 02:37:00
简介 jump consistent hash是一种一致性哈希算法, 此算法 零内存消耗 , 均匀分配 , 快速 ,并且 只有5行代码 。 此算法适合使用在分shard的分布式存储系统中 。 此算法的作者是 Google 的 John Lamping 和 Eric Veach,论文原文在 http://arxiv.org/ftp/arxiv/papers/1406/1406.2294.pdf 完整代码: int32_t JumpConsistentHash(uint64_t key, int32_t num_buckets) { int64_t b = -1, j = 0; while (j < num_buckets) { b = j; key = key * 2862933555777941757ULL + 1; j = (b + 1) * (double(1LL << 31) / double((key >> 33) + 1)); } return b; } 输入是一个64位的key,和桶的数量(一般对应服务器的数量),输出是一个桶的编号。 原理解释: 下面byron根据论文的推导过程,做个翻译: jump consistent hash的设计目标是: 平衡性,把对象均匀地分布在所有桶中。 单调性,当桶的数量变化时,只需要把一些对象从旧桶移动到新桶,不需要做其它移动。

使用activemq和redis笔记

我的梦境 提交于 2020-03-20 23:28:49
import net.sf.json.JSONObject; import org.apache.tomcat.jni.Time; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.jms.annotation.JmsListener; import org.springframework.jms.core.JmsMessagingTemplate; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.jms.Queue; import javax.servlet.http.HttpSession;

支付功能

倾然丶 夕夏残阳落幕 提交于 2020-03-20 21:13:32
微信提供 HttpClient.java 工具类 package cn.itcast.core.util; import java.io.IOException; import java.security.GeneralSecurityException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.text.ParseException; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLException; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocket; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org.apache.http.Consts; import

parseInt, parseFloat, Number!!!

送分小仙女□ 提交于 2020-03-20 15:17:01
①使用parseInt()转换有符号整数 parseInt() 的作用 被描述为 Parses a string argument and returns an integer of the specified radix or base. parseInt() 的使用方式:var num = parseInt(string[,radix]); parseInt() 方法首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,该方法将返回 NaN,不再继续执行其他操作。 但如果该字符是有效数字,该方法将查看位置 1 处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止, 此时 parseInt() 将把该字符之前的字符串转换成数字。 常规用法举例说明: var num = parseInt("12abc"); //返回 12    var num = parseInt("56.9"); //返回 56 var num = parseInt("red"); //返回 NaN var num = parseInt("red123"); //返回 NaN parseInt() 方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由 parseInt() 方法的 第二个参数指定的,当然,对二进制、八进制、十六进制甚至十进制(默认模式)

MySQL存储过程使用简介

╄→гoц情女王★ 提交于 2020-03-20 12:52:51
3 月,跳不动了?>>> 一句话解决方案 # 进入到mysql控制台 # step1: 分隔符改为$$,这块可以自定义,主要是为了和存储过程里的分号不一致 delimiter $$ # step2: 创建存储过程 create procedure myproc() begin declare num int; set num=1; while num <= 10000000 do insert into test_user(username,gender,password) values(num,'保密',PASSWORD(num)); set num=num+1; end while; end$$ # step3: 恢复分号作为分隔符 delimiter ; # step4: 调用存储过程 call myproc(); 总结 1.存储过程适合做重复的事情,但是不适合在大型项目中长期使用,因为兼容性(不同db的存储过程不一致) 2.上述存储过程经过主要是为了学习索引,创建的大量测试数据 参考 https://blog.csdn.net/qq_33556185/article/details/52192551 https://www.runoob.com/w3cnote/mysql-stored-procedure.html 来源: oschina 链接: https://my

12.整数转罗马数字

六月ゝ 毕业季﹏ 提交于 2020-03-20 11:32:48
2020-03-20 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 说明: 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况 I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。 X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。 示例: 输入: 3 输出: 'III' 输入: 4 输出: 'IV' 输入: 9 输出: 'IX' 输入: 58 输出: 'LVIII' 输入: 1994 输出: 'MCMXCIV' 解释: M = 1000, CM = 900, XC = 90, IV = 4 题解: 思路1: 暴力拆解 从大往小拆减num /** * @param

js 合并数组对象中的相同项,并统计数量和

你离开我真会死。 提交于 2020-03-20 10:41:41
let list=[ { id:11, name:'apple', num:2 }, { id:11, name:'apple', num:3 }, { id:22, name:'pig', num:2 }, { id:11, name:'apple', num:2 }, ] list = list.reduce((obj, item) => { let find = obj.find(i => i.id === item.id) let _d = { ...item, frequency: 1 } find ? (find.num+=item.num,find.frequency++ ): obj.push(_d) return obj }, []) 输出=> [ { id: 11, name: "apple", frequency:3, num: 7 },{ id: 22, name: "pig", frequency:1, num: 2, } ] 来源: https://www.cnblogs.com/wangzhichao/p/12529756.html

oracle生成单据号

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-20 08:09:44
--创建单据号存放表 CREATE TABLE BU_TAB( DOC_NUM NUMBER --生成的单据号 ); --单据号 create table cux_doc_num( tab varchar2(40), --表名 col varchar2(80), --列明 prefix varchar2(20), --前缀 sequence number --序号 ); --记得创建索引 create index cux_doc_num_u1 on cux_doc_num(tab,col,prefix); --单据号返回函数 create or replace function get_doc_num(p_tab in varchar, --表名 p_col in varchar, --列名 p_prefix in varchar --前缀 --,seq_len in integer defatlt 3, --,break_num_reuse varchar2 default 'N' --字符型入能,默认'N',指出是否对断号进行重用,默认不重用 ) return varchar is --返回的单据号 pragma autonomous_transaction; --v_result varchar2(200); n_sequence number; c_sequence

小学数学题,你会吗?

自闭症网瘾萝莉.ら 提交于 2020-03-20 04:29:07
  一日,某小学生问作业:“将16分解为若干素数的和,求这些素数积的最大值”。不禁被吓了一跳。怎么小学生的数学题变得这么难了?   细细询问,小学生没学不等式,没学数学归纳法……。那么只能用最笨的办法——穷举,一个个地试的办法来解决。   穷举之道,在于一一举来,不多不少;而不多不少,则在于有条有理,从容不乱。   小于16的素数依次为:2,3,5,7,11,13。显然,最大积是16和{2,3,5,7,11,13}的函数,将这个最大积记为     F(16,{2,3,5,7,11,13})   该最大积中可能有素因子2也可能没有,因此     F(16,{2,3,5,7,11,13}) =      MAX (          2 * F(14 ,{2,3,5,7,11,13}) ,         F(16 ,{3,5,7,11,13} ) ,       )   同理,      F(14,{2,3,5,7,11,13}) =       MAX (           2 * F(12 ,{2,3,5,7,11,13}) ,           F(14 ,{3,5,7,11,13} ) ,       )      F(16,{3,5,7,11,13}) =       MAX (           3 * F(3 ,{2,3,5,7,11,13}) ,       

T2695 桶哥的问题——吃桶

左心房为你撑大大i 提交于 2020-03-20 03:21:05
~~~~~我~是~真的~忍不了~这个~取模~的~锅~了~~~~~ T2695 桶哥的问题——吃桶 前传 1. T2686 桶哥的问题——买桶 这题真的hin简单,真的 2. T2691 桶哥的问题——送桶 前言 这是一道看上去不是毒瘤但实际上有那么一seisei毒瘤的题目 在我多次提交代码仍然屡教不改最后痛改前非的惨痛经历下,总结出以下#¥@¥#%: 1.可以用结构体存 a , b QAQ实锤啦是取模的锅 不用结构体的话那就换成两个一维数组 a[ ] b[ ] 2.多取模,越多越好,能往哪里mod就往哪里mod (一开始mod少了,然后就Wa了) 解析 1. 把这个式子化简一下 z - x = 3 y 也就是说明 z,x 属于同一个mod(3)的剩余类 如果 z 是 15 的话,那么 x 可以是 3 6 9 12 (%3……0) 如果 z 是 16 的话,那么 x 可以是 1 4 7 10 (%3…… 1) 如果 z 是 17 的话,那么 x 可以是 2 5 8 11 (%3…… 2) 所以我们就可以枚举 z ,那么符合条件的 x 就是和它同属一个剩余类并且 的啦 2. 我们把这个式子拆一下 ( x + z )·( b x - b z ) = x·b x + z·b x - x·b z - z·b z 所以说,对于每一个 z ,它可以有很多个对应的 x ,虽然 x ,b x 不确定