日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【SICP练习】66 练习2.37

發(fā)布時(shí)間:2025/3/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【SICP练习】66 练习2.37 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


練習(xí)2.37

這道題花了我太長(zhǎng)的時(shí)間了,一開始我就把題目中的m看成了w。然后題中給出的dot-product的兩個(gè)參數(shù)我還以為一個(gè)是向量另一個(gè)是矩陣。怎么算都算不出來,直到看到“返回求和...”里的w只有一個(gè)i而沒有j。好了,那么開始按照題目的要求來做題了。

既然發(fā)現(xiàn)了自己的錯(cuò)誤,那么就知道了dot-product是干嘛的了,它可以用來求一個(gè)矩陣中的一列和一個(gè)向量的積。因此定義出matrix-*-vector就不難了。

(define (matrix-*-vector m v)

???(map (lambda (col)

???????????? (dot-product col v))

????????? m))

下面就來用題目中的數(shù)據(jù)來測(cè)試一下。

(matrix-*-vector ‘( (1 2 3 4) (4 5 6 6)(6 7 8 9) ) )

;Value: (30 56 80)

接下來我們來看看transpose,之所以把matrix-*-matrix放在最后是因?yàn)槠涞亩x中需要transpose

(define (transpose mat)

??(accumulate-n cons ‘() mat))

看似這么一行代碼,但其功能可強(qiáng)大了。

(transpose ‘((1 2 3 4) (4 5 6 6) (6 7 89)))

;Value: ((1 4 6) (2 5 7) (3 6 8) (4 69))

如果這里accumulate的變化有什么不明白的,可以回過頭看看練習(xí)2.33的解答中的截圖。而accumulate-n只不過是個(gè)accumulate的外殼而已,在變換中accumulate-n都將會(huì)慢慢變成accumulate

在線性代數(shù)里我們學(xué)過,兩個(gè)矩陣的乘積mn的第一列第一行的值等于m的第一列和n的第一行的點(diǎn)積,mn的第一列第二行的值等于m的第一列和n的第二行的點(diǎn)積……

(define (matrix-*-matrix m n)

???(let ((cols (transpose n)))

??????(map (lambda (col-of-m)

??????????????? (matrix-*-vector colscol-of-m))

???????????? m)))

版權(quán)聲明:本文為 NoMasp柯于旺 原創(chuàng)文章,如需轉(zhuǎn)載請(qǐng)聯(lián)系本人。

轉(zhuǎn)載于:https://www.cnblogs.com/NoMasp/p/4786153.html

總結(jié)

以上是生活随笔為你收集整理的【SICP练习】66 练习2.37的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。