SICP 1.2.4 求幂

原创 2016年06月01日 18:36:16
(define (fast-expt b n)
  (cond ((= n 0) 1)
        ((even? n) (square (fast-expt b (/ n 2))))
        (else (* b (fast-expt b (- n 1))))))

(define (even? n)
  (= (remainder n 2) 0))

(fast-expt 3 3)
版权声明:本文为博主原创文章,未经博主允许不得转载。

先求幂再求余

  • 2014年09月01日 23:21
  • 367B
  • 下载

经典算法~~快速求幂的方法

快速的求幂的方法原理: 以下以求a的b次方来介绍 把b转换成二进制数。 该二进制数第i位的权为 例如   11的二进制是1011 11 = 2³×1 + 2²×0 + 2¹×1 +...

算法系列:求幂算法

1.快速求幂算法 在这篇文章我会展示怎样通过求一个数的幂的基本思路,来引导我们发现一些抽象的东西比如半群和含幺半群。 有一个很有名的对一个数求幂的算法,也就是说,求一个数x的n次方或者这样...

三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明

一、威尔逊定理 若p为质数,则 p|(p-1)!+1 亦:(p-1)! ≡ p-1 ≡ -1(mod p) 例题: HDU 2973 YAPTCHA (威尔逊定理及其逆定理) 解题报告见http:...

汇编程序:用子程序实现求幂

【任务】   编制一个子程序,求y=x4y=x^4,自变量 xx 为字节,应变量yy可以在一个字内存放而不溢出   (1)版本1:子程序的参数由寄存器dl提供,返回结果在ax中;   (2)版本...

【算法分析与设计】快速求幂算法的分析及java实现

ACM的竞赛中,经常会出现涉及到大数模幂运算的题目,如求解2的10000次方模100000009的结果,这就需要我们设计一种有效的求幂算法。本文将结合的以上应用场景,分析以下几种常用的求幂算法并给出j...

hdu 3461 Code Lock(并查集+二分求幂)

点击打开链接 1、题目大意: 给定由N个字母组成的密码锁,如【abcdef】每一位字母都可以转动,转动该字母时,将变成它的下一个字母,如‘a'转动后是b,x转动后是y, 接着给定M个区间,每次转...

Matrix Power Series(矩阵快速幂+求幂和)

Link:http://poj.org/problem?id=3233 Matrix Power Series Time Limit: 3000MS...

用java实现分数各种运算(加减乘除,求余,求幂,求两个数中的较大值,较小值)

用java实现分数各种运算(加减乘除,求余,求幂,求两个数中的较大值,较小值) 1,要求      用户以分数形式输入,以分数形式输出,用java语言实现分数中的各种运算(加减乘除,求余,求幂,求两个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SICP 1.2.4 求幂
举报原因:
原因补充:

(最多只允许输入30个字)