アプリ版:「スタンプのみでお礼する」機能のリリースについて

「ベクトルを入力して、それを正規化したものを出力するプログラムを作りなさい。ベクトルを正規化するとは、ベクトルをその長さで割り、長さを1にすることである。」
 情報処理の講義で上記のような問題がでたのですが、どうすればいいのか分かりません。親切な方よかったら教えてください。ちなみにプログラムとはfortranのプログラムのことです。

A 回答 (2件)

では、こちらの先生の講義ノートの例題プログラムを


参照されては如何でしょうか。
http://www.media.kyoto-u.ac.jp/htomita/
初心者向けに詳しく、わかり易く書かれています。
お勧めです。

例題の中に、計算部分を前回答のように、
ちょっと変更するだけで、この問題の答えになるものがあると思います。
ではでは。
    • good
    • 0
この回答へのお礼

ありがとうございます。上記のアドレスたいへん役に立ちました。最後まで質問につきあっていただき感謝しております。

お礼日時:2001/09/06 04:41

ベクトルとは、向きと量(大きさ)を表します。


たとえば、点1(1,1)から点2(4,5)への矢印を想像して下さい。
これを、ベクトルで表すと、a=(3,4)となります。
「3」がx成分、「4」がy成分です。
この時の量(大きさ)は、|a| = √3**2+4**2 = 5
Fortran的には、sqrt(3**2+4**2)でしょうか。
この量(大きさ)が、矢印の長さを表します。

「正規化する」というのは、「単位ベクトル化する」ということになり、
図的に言うと、「向きは同じで、長さ1の矢印を求めろ。」ということになります。
上記の場合の単位ベクトルを求めると、
e=a/|a|=(3/5,4/5)=(0.6,0.8)となり、
これは、0.6**2+0.8**2 = 1 長さが1となります。

Fortranでの入出力を具体的に言えば、
入力
3,4
出力
0.6,0.8
でしょうか。
3次元ベクトルの場合は、成分が3つになるだけで計算のやり方は一緒です。
格好良く作るなら、入力に成分数を加えて、
汎用的にすると独自性が出ると思います。

説明下手でごめんなさい。
わかるでしょうか。
プログラム化するときは、変数の型に注意してくださいね。
それでは、がんばって。

この回答への補足

ていねいな回答どうもありがとうございます。仕組みというか内容はだいたいわかりました。しかし、具体的なプログラムがよく分からないのです。そのぐらい自分で考えろ!と思われるかもしれませんが本当に分からないのです。よかったら教えていただけないでしょうか?よろしくお願いします。

補足日時:2001/09/05 00:03
    • good
    • 0

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