ここから本文です

プログラミングの問題です。

dyz********さん

2019/12/613:30:37

プログラミングの問題です。

教えてください。


n個の点列が、x座標、y座標毎にリストとして与えられているものとする。
任意の連続する2点(x[i],y[i])と(x[i+1],y[i+1])間の距離を
sqrt((x[i+1]-x[i])^2+(y[i+1]-y[i])^2)
とするとき、距離の総和を返す関数distance()を定義し、sub8_1.pyという
ファイルとして作成せよ。ただし、関数の引数はx,yの2つとし、点の数は
可変とする。
点列xが与えられたとき、その点数はlength=len(x)で求めることができる。
distance()関数が返す値は、距離の総和とする。

上記の関数distance()を、ファイルsub8_1.pyとして作成した場合の実行
方法について述べる。

まず、点列のサンプルを指定する。(以下の点列を参照)
このとき、ファイルsub8_1.pyの中で、関数distance()の定義が終了し
た後に、以下の3行を挿入しておく。

x = [20,30,40,50,60,70,50,20]
y = [10,10,20,20,30,30,40,40]

distance(x, y)

上2行は点列のサンプルであり、下1行で定義した関数distance()が
実行される。この形式でのプログラムの実行については後日詳しく学ぶ。
ファイルsub8_1.pyの実行は、従来のコマンドラインからの実行法に従って
以下のように入力する。

> python sub8_1.py

閲覧数:
12
回答数:
1

違反報告

ベストアンサーに選ばれた回答

Nozomiさん

2019/12/1015:45:45

問題文の定義に従えば、以下のように書けると思います。

def distance(xlist, ylist):
・sum_distance = 0
・・for i in range(len(xlist)-1):
・・・sum_distance += ((xlist[i+1] - xlist[i])**2 + (ylist[i+1] - ylist[i])**2)**0.5
・return sum_distance

問題文の定義に従えば、以下のように書けると思います。

def distance(xlist, ylist):...

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる