MAS コミュニティ
artisoc質問用掲示板(アーカイブ)
  
質問掲示板は移転しました。新掲示板はこちら

質問 (解決済み)

[artisocモデル] 最小値の選出、最小値に対応する結果の選出方法
質問者: okdさん , 質問日時: 2020/02/05 08:36
度々の質問、申し訳ありません。

標題の件について悩んでおります。

現在、エージェントの属性として、実数型変数を作成し、2次元(配列3*3)にし、
次のような配列を持っているようにしています。
|1 | 3 | 2 |
|999|400|777|

このとき、二行目の最小値を選出したうえで、
その最小値に対応する一行目の値をピックアップしてほしいのです。

最小値の選出は、適宜アルゴリズムを組めば可能だと思うのですが、
(例えば、https://mas-auth.kke.co.jp/board/item/index.php?q=29)
最小値に対応する一行目の数値も引っ張るようにするには
どうすればよいでしょうか。

今回の例ですと、二行目の400を選出し、3です、とエージェントたちに報告して欲しいのです。
ご助言のほど、どうか宜しくお願い致します。



▼解決した回答


もう少し柔軟に考えてみましょう。
2次元目の最小値を選出するということは、同時にその配列の番号も選出されているということですよね。
例を示します。

Dim a(2,5) as integer
Dim i as integer
Dim min as integer
Dim min_num as integer
Dim min_a as integer

min = 999
min_num = 0
min_a = 0

For i = 0 to 4
 if (min > a(1,i)) then
  min = a(1,i)
  min_num = i
 end if
next i

min_a = a(0,min_num)

回答者: igaguri さん , 回答日時: 2020/02/05 10:04

▼ 全ての回答


もう少し柔軟に考えてみましょう。
2次元目の最小値を選出するということは、同時にその配列の番号も選出されているということですよね。
例を示します。

Dim a(2,5) as integer
Dim i as integer
Dim min as integer
Dim min_num as integer
Dim min_a as integer

min = 999
min_num = 0
min_a = 0

For i = 0 to 4
 if (min > a(1,i)) then
  min = a(1,i)
  min_num = i
 end if
next i

min_a = a(0,min_num)

回答者: igaguri さん , 回答日時: 2020/02/05 10:04
igaguriさん、早速の回答、誠にありがとうございます。
回答を見た瞬間、思わず声が出てしまいました。
もっと柔軟に考えたいと思います、ありがとうございました。

回答者: okd さん , 回答日時: 2020/02/05 11:22



Copyright © KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
( 会社情報 情報セキュリティ・個人情報について )