数论
文章平均质量分 51
Yang Special
你若盛开,蝴蝶自来。
展开
-
费波纳茨数列
费波纳茨数列是这样一个数列,0,1,1,2,3,5…. 通项公式为:F(n) = F(n - 1) + F(n - 2) \space n \geq 2类型题目求fic(n)对p的取模(循环节长度)p不大时我们只需遍历即可,直到有连续的两个数等于1,即可得到之前的长度为循环节的长度。 证明可以用鸽巢原理来证明。 鸽巢原理:若有n个笼子和n+1只...原创 2018-04-12 16:37:07 · 2675 阅读 · 0 评论 -
康托展开与康托逆展开
定义康托展开为全排列与自然数之间的映射关系,即康托展开可以是一个排列转化为一个自然数来代替,且一个自然数唯一指定一个排列。对应的康托的逆展开即为把一个自然数还原为一个排列。X = a_n(n - 1)! + a_{n - 1}(n - 2)! +......+a_1(0)!$a_i( 1\leq i \leq n)$代表了第i个数中比这个数小的有几个。 此数代表这个排列在总的全排...原创 2018-04-06 00:07:06 · 183 阅读 · 0 评论 -
数的快速幂与矩阵的快速幂
快速幂对于任意底数的幂结果都可以分解为指数为2的幂的结果相乘。 因为任意一个数可以用二进制来表示,所以我们的指数(假设为b),可以写成 b=b0∗20+b1∗21+b2∗22+......+bn∗2n (式子1)b=b0∗20+b1∗21+b2∗22+......+bn∗2n (式子1)b = b_0 * 2^0 + b_1 * 2^1 + b_2 * 2^2 + ...原创 2018-06-14 19:45:34 · 388 阅读 · 0 评论 -
剑指Offer-11-二进制中1的个数
题目输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解析预备知识世界上有10种人,一种人知道二进制,而另一种人不知道二进制。 在计算机中数都是采用二进制存放的,这与硬件设计电路(比如与门,放大器)等有关,且二进制只有2种状态,简单高效,故计算机采用二进制。 而参与运算的数在计算机一般用其补码形式存放。 补码是原码减1,除了符号位以外全部按位取反得...原创 2018-06-15 16:18:38 · 444 阅读 · 0 评论 -
剑指Offer-12-数值的整数次方
题目给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解析思路一大多数一看这题感觉很简单,我当时也是,直接调用Math库即可呀,可是面试考的不是对API的熟练的程度,而是对数据逻辑处理能力,所以思路一调库这个可以直接pass掉了。思路二那就自己造轮子把,于是你可能迅速的写下了如下代码: p...原创 2018-06-16 23:44:42 · 250 阅读 · 0 评论