プロが教えるわが家の防犯対策術!

以下の 3 つのベクトルの内積を計算する関数 InnerProduct() を定義し,実際にそれらの内積の結果を表示するプログラムを作成せよ.
v1 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
v2 = [1, -1, 1, -1, 1, -1, 1, -1, 1, -1]
v3 = [1, 0, -1, 1, 0, -1, 0, 0, 0, 0]

このプログラミングの解答と結果を教えていただけないでしょうか。プログラムは下記の文から始まっています。

# -*- coding: utf-8 -*
"""
innerproduct.py プログラム
"""
# 関数の定義

# メイン実行部
v1 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]# -*- coding: utf-8 -*
v2 = [1, -1, 1, -1, 1, -1, 1, -1, 1, -1]
v3 = [1, 0, -1, 1, 0, -1, 0, 0, 0, 0]

A 回答 (3件)

v1 @ v2 @ v3


みたいなものでしょうか。
    • good
    • 0

> 解答



# -*- coding: utf-8 -*
"""
innerproduct.py プログラム
"""
# 関数の定義

# メイン実行部
v1 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]# -*- coding: utf-8 -*
v2 = [1, -1, 1, -1, 1, -1, 1, -1, 1, -1]
v3 = [1, 0, -1, 1, 0, -1, 0, 0, 0, 0]

def InnerProduct(v0, v1):
 return sum([i[0] * i[1] for i in zip(v0, v1)])

if __name__ == '__main__':
 print("{0} {1} {2}".format(*[InnerProduct(i[0], i[1])\
             for i in [[v1, v2], [v2, v3], [v3, v1]]]))

> 結果

そんなもんは実行してみれば分かるだろ、って言いたいトコなんだけど、v1 と v2、v2 と v3、v3 と v1の内積は全部ゼロになる。
・・・手計算しても分かる筈なんだが、学校でキチンと勉強してなかったら分からんよな、とそういう話になる。
    • good
    • 0

ベクトルの内積って、3ベクトルでも定義されてるんでしたっけ?


ab+cdみたいにabc+def+ghi+...って計算でよいなら、こんな感じ:

import numpy as np
return np.sum( np.prod( np.dstack( (v1, v2, v3) )[0], axis=1 ) )
「プログラミングの問題です。」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!