ランダムで生成した3つのハブ駅とランダムで生成した25駅のリストを用意し、その後3つのハブ駅のある一定半径円内に含まれている駅を除いたリストを生成したいのですが、最後の一個の要素でしか計算されません。
初心者で初歩的なところでつまずいているのはわかっているのですが、どなたか教えていただけるとありがたいです。
よろしくお願いいたします。
python
1def remove_station(station_list, hub_list, R_big): 2 X, Y = hub_list[0], hub_list[1] 3 x, y = station_list[0], station_list[1] 4 hub_size = len(hub_list[0]) 5 station_size =len(station_list[0]) 6 7 for i in range(hub_size): 8 for j in range(station_size): 9 Dx = X[i] - x[j] 10 Dy = Y[i] - y[j] 11 b = math.sqrt(Dx * Dx + Dy * Dy) 12 13 m = [] 14 n = [] 15 if b - R_big >= 0: # 駅と拠点駅の距離がR_big以上であれば、駅として採用 16 m.append(x[j]) 17 n.append(y[j]) 18 else: 19 pass 20 21 return [m, n]
remove_station の呼び出し例 (どういう引数が渡されるのか) を追記していただけますか。
説明不足で失礼いたしました。
引数としては
remove_station(make_station(station_number, station_upper), hub_station(hub_number, hub_upper), R_big)
で、中身としては、
def make_station(station_number, station_upper):
random.seed(1)
x = [random.randint(0, station_upper) for i in range(station_number)]
y = [random.randint(0, station_upper) for i in range(station_number)]
return [x, y]
def hub_station(hub_number, hub_upper):
random.seed(1)
X = [random.randint(0, hub_upper) for i in range(hub_number)]
Y = [random.randint(0, hub_upper) for i in range(hub_number)]
return [X, Y]
です。
回答2件
あなたの回答
tips
プレビュー