- 浏览: 222286 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
andy1015:
请教下楼主rtx问题 ,可以么
用HttpClient实现同步RTX -
cgp17:
请教:Chukwa支持Push数据吗?目前看到的都是Polli ...
基于Hadoo的日志收集框架---Chukwa的源码分析(适配器、代理) -
jimmee:
尼玛, 现在iteye的质量下降到何种水准了.
Mahout协同过滤框架Taste的源码分析 -
aubdiy:
aubdiy 写道我擦。。。。 这你叫分析才看到, 还有个 “ ...
Mahout协同过滤框架Taste的源码分析 -
aubdiy:
我擦。。。。 这你叫分析
Mahout协同过滤框架Taste的源码分析
练习1.22
;; runtime函数在stk、racket中都不支持,而GNU的Mit-Scheme十分难用,而且在Fedora16上编译安装后启动就报错, ;; 后来总算是在selinux的提示下让它能够正常启动了 ;; grep scheme /var/log/audit/audit.log | audit2allow -M mypol ;; semodule -i mypol.pp (define (start-prime-test n start-time) (and (prime? n) (report-prime n (- (runtime) start-time)))) (define (prime? n) (= n (smallest-divisor n))) (define (report-prime n elapsed-time) (display n) (display " *** ") (display elapsed-time) (newline)) (define (search-for-primes n) (if (even? n) (search-for-primes-iter (+ n 1) 3 (runtime)) (search-for-primes-iter n 3 (runtime)))) (define (search-for-primes-iter n count start-time) (if (= count 0) ((newline) (display "search over")) (if (start-prime-test n start-time) (search-for-primes-iter (+ n 2) (- count 1) (runtime)) (search-for-primes-iter (+ n 2) count (runtime))))) ;; 数据太小的话根本不能进行比较 (search-for-primes 10000000000) 10000000019 *** .23 10000000033 *** .23 10000000061 *** .24 search over (search-for-primes 100000000000) 100000000003 *** .75 100000000019 *** .73 100000000057 *** .73 search over (search-for-primes 1000000000000) 1000000000039 *** 2.34 1000000000061 *** 2.33 1000000000063 *** 2.33 search over ;; 耗时大概呈√10倍增长
练习1.23
;; 修改如下 (define (next test) (if (= n 2) 3 (+ n 2))) (define (find-divisor n test-divisor) (cond ((> (square test-divisor) n) n) ((divides? test-divisor n) test-divisor) (else (find-divisor n (next test-divisor))))) (search-for-primes 10000000000) 10000000019 *** .13 10000000033 *** .14 10000000061 *** .14 search over (search-for-primes 100000000000) 100000000003 *** .45 100000000019 *** .45 100000000057 *** .44 search over (search-for-primes 1000000000000) 1000000000039 *** 1.41 1000000000061 *** 1.39 1000000000063 *** 1.41 search over ;; 随着数据的增大,耗时大致呈2倍增长
练习1.24
;; 1009 1013 1019 ;; 1000003 1000033 1000037 timed-prime-test 1009) 1009 *** .39 (timed-prime-test 1013) 1013 *** .42 (timed-prime-test 1019) 1019 *** .44 (timed-prime-test 1000003) 1000003 *** .77 (timed-prime-test 1000033) 1000033 *** .76 (timed-prime-test 1000037) 1000037 *** .79 ;; lg n^2 = 2 * lg n,对比以上结果,比较接近,预计测试数据增大后将更加接近
练习1.25
理论上可行,但是直接求base^exp的话可能会因为结果太大而出现溢出
练习1.26
修改后将对于base^2n进行如下方式的计算过程 --> (base*base*base*...)*(base*base*base*...)
而原来的方式将进行如下方式的计算过程 --> (base^n)^2 => (base^(n/2)^2)^2 => ...
因此原有方式为O(log n)而修改后为O(n)
练习1.27
;; 561 1105 1729 2465 2821 6601 (define (expmod base exp m) (cond ((= exp 0) 1) ((even? exp) (remainder (square (expmod base (/ exp 2) m)) m)) (else (remainder (* base (expmod base (- exp 1) m)) m)))) (define (carmichael n) (carmichael-iter n 1)) (define (carmichael-iter n a) (cond ((= a n) true) ((= (expmod a n n) a) (carmichael-iter n (+ a 1))) (else false))) (carmichael 561) ;Value: #t (carmichael 1105) ;Value: #t (carmichael 1729) ;Value: #t (carmichael 2465) ;Value: #t (carmichael 2821) ;Value: #t (carmichael 6601) ;Value: #t
练习1.28
费马小定理: 如果n是素数, 其中1<a<n, 则有 a^n ≡ a (mod n) 变形过程为: 已知 a^n ≡ a (mod n) --> a^n = k*n + a --> a^(n-1) = (k/a)*n + 1 --> a^(n-1) = k'*n + 1 --> a^(n-1) ≡ 1 (mod n) 设n是素数, 其中1<a<n-1, 假设 a^2 ≡ 1 (mod n) --> a^2 - 1 = k*n --> (a+1)*(a-1) = k*n --> (a+1)*(a-1) ≡ 0 (mod n) --> a+1 ≡ 0 (mod n) a-1 ≡ 0 (mod n) --> a = n-1 a = 1 而1<a<n-1,则n不为素数,或不存在1<a<n-1, a^2 ≡ 1 (mod n) ;; 561 1105 1729 2465 2821 6601 (define (miller-rabin n) (miller-rabin-iter n 1)) (define (miller-rabin-iter n a) (cond ((= a n) true) ((= (expmod a (- n 1) n) 1) (miller-rabin-iter n (+ a 1))) (else false))) (define (expmod base exp m) (cond ((= exp 0) 1) ((even? exp) (nontrivial-square-root (expmod base (/ exp 2) m) m)) (else (remainder (* base (expmod base (- exp 1) m)) m)))) (define (nontrivial-square-root a n) (define (try-it value) (if (and (> a 1) (< a (- n 1)) (= value 1)) 0 value)) (try-it (remainder (square a) n))) (miller-rabin 561) ;Value: #f (miller-rabin 1105) ;Value: #f (miller-rabin 1729) ;Value: #f (miller-rabin 2465) ;Value: #f (miller-rabin 2821) ;Value: #f (miller-rabin 6601) ;Value: #f
发表评论
-
SICP学习笔记 2.3.2 实例:符号求导
2012-12-12 09:59 1372练习2.56 (define (deriv ... -
SICP学习笔记 2.2.4 实例:一个图形语言
2012-12-11 21:49 1360练习2.44 (define (up-spl ... -
SICP学习笔记 2.2.3 序列作为一种约定的接口
2012-09-14 17:48 1109练习2.33 ;; map过程即为使用过程p ... -
SICP学习笔记 2.2.2 层次性结构
2012-09-05 15:54 1293练习2.24 ;; 嵌套结构的list 1 ... -
SICP学习笔记 2.2.1 序列的表示
2012-08-31 17:31 1227练习2.17 ;; 直接利用已经实现的lis ... -
SICP学习笔记 2.1.4 扩展练习:区间算术
2012-08-28 17:12 1392练习2.7 ;; 抽象对象"区间& ... -
SICP学习笔记 2.1.3 数据意味着什么
2012-08-26 11:07 1147练习2.4 (define (new-con ... -
SICP学习笔记 2.1.2 抽象屏障
2012-08-18 22:05 930练习2.2 (define (make-poin ... -
SICP学习笔记 2.1.1 实例: 有理数的算术运算
2012-08-18 21:44 921练习 2.1 (define (make-r ... -
SICP学习笔记 1.3.4 过程作为返回值
2012-08-12 11:44 1038练习 1.40 (define (cubic ... -
SICP学习笔记 1.3.3 过程作为一般性的方法
2012-08-12 11:38 914练习 1.35 φ^2 = φ+1 == ... -
SICP学习笔记 1.3.2 用lambda构造过程
2012-07-13 08:50 804练习 1.34 > (d ... -
SICP学习笔记 1.3.1 过程作为参数
2012-07-13 08:44 979练习1.29 (define (sum ... -
SICP学习笔记 1.2.5 最大公约数
2012-05-17 17:35 868练习 1.20 (define (gcd a ... -
SICP学习笔记 1.2.4 求幂
2012-05-11 18:03 927练习1.16 根 ... -
SICP学习笔记 1.2.3 增长的阶
2012-05-09 21:06 1518练习1.14 (define (count-chan ... -
SICP学习笔记 1.1.7 实例:使用牛顿法求平方根
2012-04-25 18:02 1341练习1.6 应用序会对 (def ... -
SICP学习笔记 1.2.2 树形递归
2012-04-25 18:18 962练习1.11 递归过程 (defin ... -
SICP学习笔记 1.2.1 线性的递归和迭代
2012-04-24 17:22 893练习1.9 对于过程 (define ... -
SICP学习笔记 1.1.6 条件表达式和谓词
2012-04-24 17:18 862练习1.1 10 12 8 3 6 ...
相关推荐
UCB CS61a SICP Python 描述 原文: 译者: 协议: 前面是山,我们就爬山;前面是海,我们就渡海;前面是皇宫,我们就开炮!——《龙族前传》 下载 Docker docker pull apachecn0/sicp-py-zh docker run -tid -p ...
请参考那些正在学习SICP的人。 笔记 如果你想在 gauch 中使用随机函数 (use math.mt-random) (define m (make <mersenne> :seed (sys-time))) (mt-random-integer m 1000) (define (random n) (mt-random-integer ...
NUS CS1101s SICP JavaScript 描述原文:协议:如果你交给某人一个程序,你将折磨他一整天;如果你教某人如何编写程序,你将折磨他一辈子。——David Leinweber贡献指南本项目需要校对,欢迎大家提交 Pull Request。...
资源名称:sicp 和 操作系统:精髓与设计原理第七版资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
在SICP上进行试用-> WASM编译演示:SICP如何将机器代码注册为WASM 为阶乘翻译LISP代码(define (factorial n) (define (iter product counter) (if (> counter n) product (iter (* counter product) (+ counter 1)))...
- **操作符和表达式**:学习如何处理和操作符号,理解表达式的计算过程。 9. **动态类型**: - **类型检查**:Python是动态类型的,意味着在运行时确定变量类型。 - **类型转换**:如何在不同类型之间转换数据。...
这些源代码文件扩展了./resources中的笔记内容,提供了解决SICP练习的实际实现。学习者可以通过阅读和修改这些代码,加深对Clojure语法和SICP概念的理解。 在Clojure中实现SICP的益处在于: - **函数式编程的思维...
本文将围绕"Sicp-eg-ex"这个项目,结合标题和描述,探讨在学习SICP过程中遇到的例子、笔记和习题解,特别是环境检查方案9.5的相关知识点。 首先,我们关注到的是"SICP课程视频示例"。SICP课程的核心在于通过实际的...
1. **阅读材料**:可能是SICP书的章节摘要、笔记或者补充阅读材料,帮助学习者更好地理解和消化书中的概念。 2. **代码实现**:小组成员可能用JavaScript实现了SICP中的各种算法和解释器,这有助于实践和理解书中...
最终目标是完全支持SICP指令集,然后使用此编译器将Scheme编译为Z80,或直接将Scheme编写为Z80。 无论哪种方式,该项目对我来说也意味着可以在TI-84(不是最好的语言)上探索Z80装配中的编程。特征显示字符串和数字...
《SICP》(Structure and Interpretation of Computer Programs)是一本经典的计算机科学教材,由Harold Abelson和Gerald Jay Sussman合著,MIT出版社出版。这本书主要探讨了程序设计语言的基础,以及如何构建和理解...
- **1.2.6 示例:素性测试**: 介绍一种高效判断素数的方法。 - **1.3 使用高阶过程形成抽象** - **1.3.1 作为参数的过程**: 如何将过程作为其他过程的参数。 - **1.3.2 使用lambda构造过程**: 学习lambda表达式...
《SICP笔记和练习》是一份详尽的资源,主要涵盖了由MIT教授们编写的经典计算机科学教材《Structure and Interpretation of Computer Programs》(简称SICP)的学习笔记和练习解答。这份资料以HTML格式呈现,便于在线...
《SICP:SICP解决方案》是针对结构与解释程序设计(Structure and Interpretation of Computer Programs,简称SICP)这本书的详细解答和实践指南。SICP是一本经典的计算机科学教材,由Harold Abelson和Gerald Jay ...
sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 download : https://github.com/wizardforcel/sicp-py-zh
sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 !!!download>>>https://github.com/wizardforcel/sicp-py-zh
- **素性测试 (Example: Testing for Primality)**:讨论了如何检测一个数是否为素数。 - **使用高阶过程建立抽象 (Formulating Abstractions with Higher-Order Procedures)** - **作为参数的过程 (Procedures ...
《学习SICP:探索Racket编程的艺术》 SICP,全称为《Structure and Interpretation of Computer Programs》(计算机程序的结构与解释),是一本经典的计算机科学教材,由Harold Abelson和Gerald Jay Sussman合著,...
SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版