自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (4)
  • 收藏
  • 关注

原创 【笔记】Big Integer - Miller-Rabin Primality Test

Miller-Rabin Testbase可以查表,当n不够大时private static readonly BigInteger[][] TEST_BASE ={ new BigInteger[] { 2 }, new BigInteger[] { 2, 3 }, new BigInteger[] { 31, 73}, new BigIn...

2018-11-19 15:11:51 191

原创 【笔记】Big Integer - Modular Exponentiation

Montgomery Reduce/// <summary>/// <paramref name="left"/> * <paramref name="right"/> * R ^ -1 (mod <paramref name="modulo"/>)/// (R = 2 ^ bitLength(<paramr

2018-11-19 13:38:26 196

原创 【笔记】Big Integer - Modular Inverse

Modular Inverseax + by = gcd(a, b),gcd(a, b) = 1时,ax + by = 1,ax = 1 (mod b),x = a^-1 (mod b),x即a的模逆。Shifting/// <summary>/// <paramref name="value"/> ^ -1 (mod <paramref name="...

2018-11-18 15:41:38 195

原创 【笔记】Big Integer - Lehmer's Euclidean Algorithm

Lehmer's Euclidean Algorithm给定正整数a, b (a >= b),重复取二进制前32位进行欧几里得算法,直到a和b的二进制长度小于等于32位,这时用uint版本的欧几里得算法求得的gcd就是原来的a和b的gcd;/// <summary>/// 计算<paramref name="a"/>和<paramref name...

2018-11-16 15:49:08 229

原创 【笔记】Big Integer - Binary Euclidean Algorithm

BigInteger to/from (uint[], bool)用(uint[], bool)来表示有符号大数,其中uint[]是大数的绝对值,bool为false时是负数。/// <summary>/// (<see cref="uint"/>[], <see cref="bool"/>) to <see cref="BigInteger&quo

2018-11-15 15:05:15 177

原创 【笔记】Java BigInteger - Division

BigInteger to/from (uint[], bool)用(uint[], bool)来表示有符号大数,其中uint[]是大数的绝对值,bool为false时是负数。/// <summary>/// (<see cref="uint"/>[], <see cref="bool"/>) to <see cref="BigInteger&quo

2018-11-14 18:09:21 600

原创 【笔记】Java BigInteger - Square

(uint[], bool)表示大数,uint[]大数的绝对值,bool为false时是负数。Classical Square/// <summary>/// Classical平方,数组第一个<see cref="uint"/>存放最高32位,最后一个<see cref="uint"/>存放最低32位。/// </summary>p...

2018-11-10 12:04:16 452

原创 【笔记】Java BigInteger - Multiplication

BigInteger to/from uint[]用uint[]来表示非负大数,其中数组开头是大数的最高32位,数组结尾是大数最低32位。/// <summary>/// <see cref="uint"/>数组转为非负大整数/// </summary>private static BigInteger ValueOf(uint[] value)...

2018-11-09 15:47:34 392

原创 【笔记】Java BigInteger - Addition/Subtraction

BigInteger to/from uint[]用uint[]来表示非负大数,其中数组开头是大数的最高32位,数组结尾是大数最低32位。/// <summary>/// <see cref="uint"/>数组转为非负大整数/// </summary>private static BigInteger ValueOf(uint[] value)...

2018-11-08 18:33:38 563

原创 【笔记】TAOCP Vol4 - Combination

组合个数/// <summary>/// <paramref name="n"/>个元素集合中所有<paramref name="m"/>个元素组合的个数。/// <paramref name="m"/> >= 0; <paramref name="n"/&gt

2018-11-06 17:56:01 180

原创 【笔记】TAOCP Vol4 - Permutation

Lexicographic(字典顺序)给定一个[2,12]之间的整数n,升序返回int[]集合,数组里的数字代表索引。譬如n = 4时,返回0123,0132,0213,0231,0312,0321,1023,1032,1203,1230,1302,1320,2013,2031,2103,2130,2301,2310,3012,3021,3102,3120,3201,3210对于任...

2018-11-06 16:36:28 114

原创 【笔记】Hacker's Delight - Some Elementary Functions

Newton's MethodInteger Square Root难点在于计算x0,第一种方法x0 = 2^k >= sqrt(n),k取最小值/// <summary>/// 返回<paramref name="n"/>平方根,向下取整/// </summary>public static int IntegerSquare...

2018-11-06 15:40:28 228

原创 【笔记】Hacker's Delight - Counting Bits

Counting 1-Bits(二进制1的个数)/// <summary>/// <paramref name="n"/>二进制1的个数/// </summary>public static int Population(uint n){ n -= (n >> 1) & 0x5555_5555; n = (n...

2018-11-06 14:26:29 445

原创 【笔记】Hacker's Delight - Power-Of-2 Boundaries

 Rounding Up/Down to a Multiple of a Known Power of 2(上下取整为2的n次方)Rounding Down/// <summary>/// greatest power of 2 less than or equal to <paramref name="n"/>/// </summary>...

2018-11-06 13:20:18 226

原创 【笔记】Modular Inverse

扩展欧几里得方法可以求解ax + by = gcd(a, b),当gcd(a, b) = 1时,ax + by = 1。ax = 1 (mod b),  x即a的模逆。by = 1 (mod a),y即b的模逆。最简单的模逆运算就是调用扩展欧几里得方法,扩展欧几里得方法见另一篇笔记。/// <summary>/// <paramref name="value"...

2018-11-06 11:41:23 453 1

原创 【笔记】Binary Extended Euclidean Algorithm

扩展欧几里得算法给定非负整数a, b,求解向量(u1, u2, u3),使得au1 + bu2 = u3 = gcd(a, b)。扩展欧几里得算法的除法版本引入辅助向量(v1, v2, v3),使得av1 + bv2 = v3 代码如下:/// <summary>/// 返回{x, y, gcd}, 使得<paramref name="a"/>x + &...

2018-11-04 16:56:26 366

原创 【笔记】Binary Euclidean Algorithm

欧几里得算法u,v都是偶数时 gcd(u, v) = 2gcd(u/2, v/2)u,v只有一个偶数时,偶数u时  gcd(u, v) = gcd(u/2, v);偶数v时 gcd(u, v) = gcd(u, v/2)u,v都是奇数时,u > v时 gcd(u, v) = gcd((u - v)/2, v); u < v时 gcd(u, v) = gcd(u, (v ...

2018-11-02 12:10:47 274

原创 【日记】Eratosthenes Sieve

原理:偶数不可能是素数,素数的倍数也不可能是素数。参考wiki——https://en.wikipedia.org/wiki/Eratosthenes因为空间开销是Ω(n),所以当n比较大时,效率会很低。private static readonly int ERATOSTHENES_THREADHOLD = 10_000;/// <summary>/// 埃...

2018-11-02 08:19:35 283

原创 【日记】Miller-Rabin Primality Test

Miller-Rabin Test 参考wiki—— https://en.wikipedia.org/wiki/Miller–Rabin_primality_test其中a的选择:所以base可以查表,当n不够大时: private static readonly uint[][] TEST_BASE = { ...

2018-11-01 18:00:05 456

原创 【日记】Montgomery Modular Inverse

(r, k) = AlmMonInv(a, m) = (a^-1)(2 ^k) (mod m)/// <summary>/// 返回{x, k};x = <paramref name="value"/>−1 * 2^k (mod <paramref name="modulo"/>) /// if gcd(<paramref name="value...

2018-11-01 16:23:38 184

原创 【日记】Montgomery Moduluar Exponentiation

对正整数x, y, m, R, m',如果存在如下约束:0 <= x, y < R*mR = 2 ^ n, R > mgcd(m, 2) = 1R^-1*R - m'*m = 1则MonPro(x, y, m, m') = (xy)R^-1 (mod m)。function REDC(x, m, m') a <- (x (mod R))m' (...

2018-11-01 12:02:03 247

汉字笔顺共20842字(“壭亪寽兯嚸”这五个字没收)

纯文本,网络爬来的,大部分来自bs.kaishicha.com。 有16个字来自其它网站: 﨩、嗀、蘒、﨤、礼、裏、隣、秊、兀、凉、郎、羛、羭、袬、羒、羵

2020-09-03

冈萨雷斯《数字图像处理》全家桶

包括英文文字版第3版和第4版,中文扫描版第3版,中文Matlab扫描版第2版。所有版本均带有书签。另附中文Matlab版程序及图片资源。所有文档均为pdf。

2018-11-22

离散数学及其应用第6版答案(奇数题和偶数题)

离散数学及其应用第6版所有题的答案包括奇数题及偶数题

2013-12-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除